经典贪心 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;
}









