UVA 11292 The Dragon of Loowater(贪心)
2013-07-31 20:50
288 查看
题意:有n个头的恶龙,需要杀掉它。现在有m个骑士可以雇佣,每个能力值为x的骑士可以砍掉一个直径不超过x的龙头,且需要支付x金币。现在让你求出将恶龙杀掉所需要的最少支付金币的数量,如果不能杀掉输出“Loowater is doomed!”。
思路:排序之后直接贪心。每次用能力值最少去杀直径最小的龙头(前提可以杀掉),直到杀完或者杀不掉为止。
思路:排序之后直接贪心。每次用能力值最少去杀直径最小的龙头(前提可以杀掉),直到杀完或者杀不掉为止。
#include<stdio.h> #include<algorithm> bool cmp(int x,int y) { return x<y;//降序排列 } //直接排序后贪心每次用值最小的骑士去砍龙的头直到全部砍完或者没有可以砍得为止 using namespace std; int main() { int n,m,i,j; int dragon[20000+10],people[100000+10];//龙头直径和骑士的能力值 while(scanf("%d%d",&n,&m)) { if(n==0&&m==0) break; int ans=0,count=0;//count统计已经砍掉了几个头 for(i=0;i<n;i++) scanf("%d",&dragon[i]); for(i=0;i<m;i++) scanf("%d",&people[i]); if(n>m) printf("Loowater is doomed!\n"); else { j=0; sort(dragon,dragon+n,cmp); sort(people,people+m,cmp); j=0; for(i=0;i<m;i++)//枚举每个骑士 { if(dragon[j]<=people[i]) { count++; ans+=people[i]; j++; } if(count==n) break; } if(count!=n) printf("Loowater is doomed!\n"); else printf("%d\n",ans); } } return 0; }
相关文章推荐
- UVa 11292&HDU1902 The Dragon of Loowater (贪心)
- Uva11292--------------(The Dragon of Loowater)勇者斗恶龙 (排序后贪心)
- UVa 11292 The Dragon of Loowater 【贪心】
- UVA-1623 Enter The Dragon (贪心)
- UVaThe Dragon of Loowater-11292(排序+贪心)
- UVa 11292 The Dragon of Loowater (贪心)
- 贪心/思维题 UVA 11292 The Dragon of Loowater
- UVA 1623 Enther the Dragon 神龙喝水 (贪心)
- Uva---11292Problem C: The Dragon of Loowater (贪心)
- UVa 1623 - Enter The Dragon(贪心)
- UVa 1623:Enter the Dragon(贪心)
- uva 11292 The Dragon of Loowater(贪心)
- uva11292 The Dragon of Loowater (排序+贪心)
- uva11292 The Dragon of Loowater (排序+贪心)
- uva11292 - The Dragon of Loowater (贪心)
- UVA 321 - The New Villa
- If running in the context of a test using the mocking API or bootstrap Grails correctly
- JAVA-勇者斗恶龙-The Dragon of Loowater,Uva 11292-排序后贪心
- UVALive 7146-贪心&数据结构stl-Defeat the Enemy
- The Dragon of Loowater UVa 11292(排序后贪心)