USACO 1.3.1 Mixing Milk

来源:互联网 发布:手机淘宝怎么看好评率 编辑:程序博客网 时间:2024/06/06 16:31

本题利用贪心算法即可求解。贪心策略:优先取单价最低的,直到数量足够。

代码如下:


/*ID: michael139LANG: CPROG: milk*/#include<stdio.h>#include<string.h>typedef struct {    int p,a;} Farmer;Farmer f[5050],temp;int main () {    FILE *fin  = fopen("milk.in", "r");    FILE *fout = fopen("milk.out", "w");    int n,m,i,j,ans;    while (fscanf(fin,"%d%d",&n,&m) != EOF) {        for (i=1;i<=m;i++) fscanf(fin,"%d%d",&f[i].p,&f[i].a);        for (i=1;i<=m;i++) {            for (j=i+1;j<=m;j++) {                if (f[i].p>f[j].p) {                    temp = f[i];                    f[i] = f[j];                    f[j] = temp;                }            }        }        ans = 0;        for (i=1;i<=m;i++) {            if (f[i].a<=n) {                ans += f[i].a*f[i].p;                n -= f[i].a;                if (n==0) break;            } else {                ans += n*f[i].p;                break;            }        }        fprintf(fout,"%d\n",ans);    }    return 0;}



原创粉丝点击