当前位置:首页 >> 硬件技术 >> 【UVA - 11292】Dragon of Loowater (贪心,水题,模拟,twopointer双指针),lt25c

【UVA - 11292】Dragon of Loowater (贪心,水题,模拟,twopointer双指针),lt25c

cpugpu芯片开发光刻机 硬件技术 1
文件名:【UVA - 11292】Dragon of Loowater (贪心,水题,模拟,twopointer双指针),lt25c 【UVA - 11292】Dragon of Loowater (贪心,水题,模拟,twopointer双指针)

题干:

题目大意:

n条恶龙,m个勇士,用勇士来杀恶龙。一个勇士只能杀一个恶龙。而且勇士只能杀直径不超过自己能力值的恶龙。每个勇士需要支付能力值一样的金币。问杀掉所有恶龙需要花费的最少金币。

解题报告:

   twopointer排序后从头到尾扫一遍就行了。

AC代码:

#include<cstdio>#include<iostream>#include<algorithm>#include<queue>#include<map>#include<vector>#include<set>#include<string>#include<cmath>#include<cstring>#define ll long long#define pb push_back#define pm make_pair#define fi first#define se secondusing namespace std;const int MAX = 2e5 + 5;int a[MAX],b[MAX];int n,m;int main(){while(~scanf("%d%d",&n,&m)) {//n个头 m个勇士 if(n == 0 && m == 0 ) break;for(int i = 1; i<=n; i++) scanf("%d",a+i);for(int i = 1; i<=m; i++) scanf("%d",b+i);//勇士 sort(a+1,a+n+1);sort(b+1,b+m+1);int ans = 0;int flag = 1;int i,j;for(i = 1,j=1; i<=n; i++) {while(b[j] < a[i] && j <= m) j++;if(j > m) {flag = 0;break;}ans += b[j];j++;}if(i<=n || flag == 0) puts("Loowater is doomed!");else printf("%d\n",ans);}return 0 ;}

 

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接