uva 11292

来源:互联网 发布:粉丝点赞源码 编辑:程序博客网 时间:2024/04/29 14:34
题意:
给定龙的脑袋数,给定勇士的能力值,求最小的花费。
思路:
直接贪心就好,每次尽量选能够打败当前龙的花费最小的那个勇士。
常见的错误:
1.不排序直接上    
讲道理,这题需要先排序,然后才能够开始贪心。不然题目的数据,可能是乱序的。
2.不进行初始化
每次都需要初始化一下。将全局变量重新置零,重新初始化。
可以每次多输入几次数据检测一下。
#include<cstdio>#include<algorithm>using namespace std;const int N=30000;int n,m;int t[N],po[N];int main(){    while(scanf("%d%d",&n,&m)!=EOF)    {        if(n==0&&m==0)            break;        for(int i=0;i<n;i++)        {            scanf("%d",&t[i]);        }        for(int i=0;i<m;i++)        {            scanf("%d",&po[i]);        }        sort(t,t+n);        sort(po,po+m);        int j=0;        int ans=0;        int ff=0;        for(int i=0;i<n;i++)        {            ff=0;              //printf("ff:%d\n",ff);            for(;j<m;j++)            {               // printf("j:%d\n",j);                if(po[j]>=t[i])                {                    ff=1;                    ans+=po[j];                    j++;                    break;                }            }            if(ff==0)                break;        }        if(ff==0)        {            puts("Loowater is doomed!");        }        else            printf("%d\n",ans);    }    return 0;}

0 0
原创粉丝点击