解题思路:排序后贪心,和fatmouse‘s trade 类似
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5837 Accepted Submission(s): 2692
#include<stdio.h> #include<string.h> int c[1001],w[1001]; void bubblesort(int a[],int b[],int n) { int i,j,t; for(i=1;i<=n;i++) { for(j=i+1;j<=n;j++) { if(a[i]<a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; t=b[i]; b[i]=b[j]; b[j]=t; } } } } int main() { int v,n,i,j,sum; while(scanf("%d %d",&v,&n)!=EOF&&v) { sum=0; for(i=1;i<=n;i++) scanf("%d %d",&c[i],&w[i]); bubblesort(c,w,n); for(i=1;i<=n&&v;i++) { if(v>=w[i]) { sum+=c[i]*w[i]; v=v-w[i]; } else { sum+=v*c[i]; v=0; } } printf("%d\n",sum); } }
原文:http://www.cnblogs.com/wuyuewoniu/p/4200211.html