标签:
3 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
0 3 5
#include<stdio.h> #include<math.h> #include<stdlib.h> #include<string.h> #include<algorithm> using namespace std; const int maxn=1000+10; struct node{ int dl,sco; bool flag;//flaf表示可以完成 }a[maxn]; bool cmp(node a1,node a2){ if(a1.dl!=a2.dl)return a1.dl<a2.dl; else return a1.sco>a2.sco; } int main() { int N,n,i; scanf("%d",&N); while(N--) { scanf("%d",&n); for(i=0;i<n;i++)scanf("%d",&a[i].dl); for(i=0;i<n;i++)scanf("%d",&a[i].sco); for(i=0;i<n;i++)a[i].flag=true; sort(a,a+n,cmp); int day=1,res=0; for(i=0;i<n;i++) { if(a[i].dl>=day){ day++; continue; } int p=a[i].sco,pos=i; for(int j=0;j<i;j++) { if(a[j].sco<p&&a[j].flag==1) { p=a[j].sco; pos=j; } } res+=p; a[pos].flag=0; } printf("%d\n",res); } return 0; }
HDU1789Doing Homework again(贪心)
标签:
原文地址:http://www.cnblogs.com/Annetree/p/5509534.html