HDU——1789Doing Homework again(贪心)
Doing Homework again
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10043 Accepted Submission(s): 5875
his score of the final test. And now we assume that doing everyone homework always takes one day. So Ignatius wants you to help him to arrange the order of doing homework to minimize the reduced score.
Each test case start with a positive integer N(1<=N<=1000) which indicate the number of homework.. Then 2 lines follow. The first line contains N integers that indicate the deadlines of the subjects, and the next line contains N integers that indicate the reduced
scores.
3
3 3 3
10 5 1
3
1 3 1
6 2 3
7
1 4 6 4 2 4 3
3 2 1 7 6 5 4
3
5
好吧这题我只知道要根据分数排序,写完bool cmp后sort就不知道咋办了。弱比的我还是得百度。
做法:首先根据分数降序排序,其次若分数相同,则天数少的排前面(升序)。然后再创建一个记录int数组,由于是贪心问题,尽量将要求第几天完成的排在那一天,给前面腾出空间若那一天被占用了,则往前找空的一天,原则就是尽量往后排,尽量拖延,能迟点完成就迟点完成(尽量往后排)
代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct id
{
int day;
int fenshu;
};
bool cmp(const id a,const id b)
{
if(a.fenshu!=b.fenshu)
return a.fenshu>b.fenshu;//先降序排分数
else return a.day<b.day;//再升序排截止日期
}
int main(void)
{
int n,t,i,use[1009],j,sum,tem;
cin>>t;
while(t--)
{
memset(use,0,sizeof(use));
cin>>n;
id *haha=new id[n+2];//new一下节省空间,n+2有安全感....
for (i=0; i<n; i++)
cin>>haha[i].day;
for (i=0; i<n; i++)
cin>>haha[i].fenshu;
sort(haha,haha+n,cmp);//排个序
sum=0;
for (i=0; i<n; i++)
{
tem=haha[i].day;//这里比较重要,从某分数对应的天数开始往前找
while(tem)
{
if(use[tem]==0)//为0则没被占用
{
use[tem]=1;//那现在就要占用了,标记为1
break;//果断break
}
else
{
tem--;//自己对应那天被占用则往前找(占用别人的)
}
}
if(tem==0)//到0了还没找到,那就注定没时间补了
sum+=haha[i].fenshu;//扣下这分!
}
cout<<sum<<endl;
delete []haha;//记得delete[]
}
return 0;
}
HDU——1789Doing Homework again(贪心)的更多相关文章
- 动态规划: HDU 1789Doing Homework again
Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot of h ...
- HDU 4442 Physical Examination(贪心)
HDU 4442 Physical Examination(贪心) 题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=4442 Descripti ...
- hdu 1789 Doing HomeWork Again (贪心算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1789 /*Doing Homework again Time Limit: 1000/1000 MS ...
- HDU 1789 - Doing Homework again - [贪心+优先队列]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1789 Time Limit: 1000/1000 MS (Java/Others) Memory Li ...
- HDU 1789 Doing Homework again(贪心)
Doing Homework again 这只是一道简单的贪心,但想不到的话,真的好难,我就想不到,最后还是看的题解 [题目链接]Doing Homework again [题目类型]贪心 & ...
- HDU 5835 Danganronpa (贪心)
Danganronpa 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5835 Description Chisa Yukizome works as ...
- HDU 5821 Ball (贪心)
Ball 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5821 Description ZZX has a sequence of boxes nu ...
- HDU 1009 FatMouse' Trade(贪心)
FatMouse' Trade Problem Description FatMouse prepared M pounds of cat food, ready to trade with the ...
- hdu--1798--Doing Homework again(贪心)
Doing Homework again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
随机推荐
- 多目标检测分类 RCNN到Mask R-CNN
最近做目标检测需要用到Mask R-CNN,之前研究过CNN,R-CNN:通过论文的阅读以及下边三篇博客大概弄懂了Mask R-CNN神经网络.想要改进还得努力啊... 目标检测的经典网络结构,顺序大 ...
- UVA 1608 Non-boring sequence 不无聊的序列(分治,中途相遇)
题意:给你一个长度为n序列,如果这个任意连续子序列的中都有至少出现一次的元素,那么就称这个序列是不无聊的,判断这个序列是不是无聊的. 先预处理出每个元素之前和之后相同元素出现的位置,就可以在O(1)的 ...
- Linux Cache 机制探究
http://www.penglixun.com/tech/system/linux_cache_discovery.html
- C07 模块化开发信息管理系统案例
目录 需求分析 问题分析 开发阶段 需求分析 总体需求 学员信息管理系统支持以下功能 增加学员信息功能 删除学员信息功能 查询学员信息功能 修改学员信息功能 输出所有学员信息功能 退出系统 其他需求 ...
- JQuery EasyUI学习记录(三)
1.jQuery EasyUI messager使用方式 1.1 alert方法 $(function(){ //1.alert方法---提示框 $.messager.alert("标题&q ...
- JavaScript学习整理(转载)
JavaScript的学习整理(一) 目录: 1.换皮肤功能2.显示/隐藏(点击切换)3.显示/隐藏(onmouseover/onmouseout)4.选项卡5.全选/不选/反选(checkbox)6 ...
- 利用ss5服务搭建代理服务器
利用ss5服务搭建代理服务器 1. 下载ss5-3.8.9-8.tar.gz ###官网下载http://ss5.sourceforge.net/ 2. 安装ss5 yum -y install gc ...
- 关于flyme5显示不到和卸载不到旧应用解决方法
笔者买入一台mx5,升级flyme5后旧应用没有显示出来,而且在设置的应用管理都没显示旧应用. 通过adb命令: adb shell pm list packages显示所有包名, 查看自己要删除应用 ...
- PCA检测人脸的简单示例_matlab实现
PCA检测人脸的简单示例,matlab R2009b上实现训练:训练用的20副人脸: %训练%Lx=X'*Xclear;clc;train_path='..\Data\TrainingSet\';ph ...
- c++结构体双关键字排序
#include<bits/stdc++.h> using namespace std; struct node{ int l,r; }num[]; int w_comp(const no ...