标签:des style blog io color os ar java for
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6925 Accepted Submission(s): 4124
注意不同于doing homework...
贪心,将作业按分值排序,将每个作业安排到截止时间,如果被占了,就继续往前找空的时间,找不到就扣分。
为什么能这样?因为要求扣分最少,而每一门作业的时间都是1天完成,所以放弃一个分值小的总比放弃一个分值大的要好。
#include <iostream> #include <algorithm> #include <cstring> using namespace std; #define N 1010 struct course { int deadtime; int score; bool operator <(const course &t)const { if(score!=t.score) return score>t.score; return deadtime<t.deadtime; } }s[N]; int main() { int vis[N]; int T,n,i,j; scanf("%d",&T); while(T--) { scanf("%d",&n); memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) { scanf("%d",&s[i].deadtime); } for(i=1;i<=n;i++) { scanf("%d",&s[i].score); } sort(s+1,s+n+1); int ans=0; for(i=1;i<=n;i++) { for(j=s[i].deadtime;j>=1;j--) { if(!vis[j]) { vis[j]=1; break; } } if(j==0) ans+=s[i].score; } cout<<ans<<endl; } return 0; }
贪心 [HDU 1789] Doing Homework again
标签:des style blog io color os ar java for
原文地址:http://www.cnblogs.com/hate13/p/4061707.html