您的位置:首页 > 其它

uva 11292

2016-06-17 00:33 246 查看
题意:
给定龙的脑袋数,给定勇士的能力值,求最小的花费。
思路:
直接贪心就好,每次尽量选能够打败当前龙的花费最小的那个勇士。
常见的错误:
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!");}elseprintf("%d\n",ans);}return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: