hdu1789 Doing Homework again (贪心)
2013-08-25 12:35
295 查看
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1789
题解:贪心,reduced score最大最先完成
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXN 1002
struct node
{
int deadline,score;
}hwork[MAXN];
int cmp(const void *x,const void *y)
{
struct node *a=(struct node *)x;
struct node *b=(struct node *)y;
return b->score-a->score;//从大到小排序,reduced score最大最先完成
}
int main()
{
int test,i,j,n,sum;
int flag[MAXN];
scanf("%d",&test);
while(test--)
{
scanf("%d",&n);
sum=0;
memset(flag,0,sizeof(flag));
for(i=0;i<n;++i)
scanf("%d",&hwork[i].deadline);
for(i=0;i<n;++i)
scanf("%d",&hwork[i].score);
qsort(hwork,n,sizeof(hwork[0]),cmp);
for(i=0;i<n;++i)
{
for(j=hwork[i].deadline;j>0;--j)
{//从deadline往前搜,如果有一天未被占用,则完成此作业,否则放弃
if(flag[j]==0)
{
flag[j]=1;
break;
}
}
if(j==0)//此作业未能完成
sum+=hwork[i].score;
}
printf("%d\n",sum);
}
return 0;
}
题解:贪心,reduced score最大最先完成
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXN 1002
struct node
{
int deadline,score;
}hwork[MAXN];
int cmp(const void *x,const void *y)
{
struct node *a=(struct node *)x;
struct node *b=(struct node *)y;
return b->score-a->score;//从大到小排序,reduced score最大最先完成
}
int main()
{
int test,i,j,n,sum;
int flag[MAXN];
scanf("%d",&test);
while(test--)
{
scanf("%d",&n);
sum=0;
memset(flag,0,sizeof(flag));
for(i=0;i<n;++i)
scanf("%d",&hwork[i].deadline);
for(i=0;i<n;++i)
scanf("%d",&hwork[i].score);
qsort(hwork,n,sizeof(hwork[0]),cmp);
for(i=0;i<n;++i)
{
for(j=hwork[i].deadline;j>0;--j)
{//从deadline往前搜,如果有一天未被占用,则完成此作业,否则放弃
if(flag[j]==0)
{
flag[j]=1;
break;
}
}
if(j==0)//此作业未能完成
sum+=hwork[i].score;
}
printf("%d\n",sum);
}
return 0;
}
相关文章推荐
- HDU1789-Doing Homework again-贪心
- hdu1789 sdut2076 Doing Homework again(贪心)
- HDU1789 Doing Homework again 【贪心】
- HDU1789 doing homework again(贪心)
- HDU1789:Doing Homework again 【贪心】
- HDU1789--Doing Homework again(贪心)
- [HDU1789]Doing Homework again[贪心]
- ACM-HDU1789 Doing Homework again(又是贪心- -、)
- 【贪心】 hdu1789 Doing Homework again
- hdu1789 Doing Homework again (贪心)
- HDU1789_Doing Homework again_贪心、并查集优
- HDU 1789 Doing Homework again 贪心
- HDU 1789 Doing Homework again 贪心
- hdu 1789 Doing Homework again(贪心)
- HDU1789(Doing Homework again)题解
- hdu1789 Doing Homework again
- HDU 1789 Doing Homework again【贪心】
- hdu1789——Doing Homework again(贪心)
- 暑期dp46道(42)--HDOJ 1789 Doing Homework again 贪心
- hdoj 1789 Doing Homework again 【贪心】