经典贪心 doing homework again 求思想 求解
自己写的,不对!程序代码:
#include <stdio.h> struct work { int day; int score; int flag; }temp,a[1001]; //日期 升序排序 void sort (struct work a[],int n) { int i,j; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j].day>a[j+1].day) { temp=a[j];a[j]=a[j+1];a[j+1]=temp; } } } } int main() { int t,n,i,j,sign,total,min,date; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i].day); a[i].flag=0; } for(i=0;i<n;i++) scanf("%d",&a[i].score); sort(a,n); date=1;total=0; for(i=0;i<n;i++) { if(a[i].day<date) { min=a[i].score; sign=i; for(j=0;j<=i-1;j++) { if(a[j].score<min&&a[j].flag==0) { min=a[j].score; sign=j; } } a[sign].flag=1; total=total+min; } else date++; } printf("%d\n",total); } return 0; }