hdu 4544 湫湫系列故事——消灭兔子

51nod 1191 消灭兔子(贪心) 参考:http://blog.youkuaiyun.com/u010885899/article/details/48517051 怎么说呢,想到了一种思路,但是不会实现,很蛋疼。 思路:按照Q币升序排序,血量也是升序排序。先用Q币少的去打血量少的,当碰到一个兔子的血量比伤害要高的时候,可以选择曾经用过的伤害高的箭,和当前的箭对比一下两者能否替换,如果能替换就替换掉,不能替换就继续向后找。不会实现 反观大 阅读详情

湫湫系列故事——消灭兔子

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 247    Accepted Submission(s): 91


Problem Description
  湫湫减肥
  越减越肥!
  
  最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。
  游戏规则很简单,用箭杀死免子即可。
  箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买。
  假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要的QQ币。
 

Input
输入数据有多组,每组数据有四行;
第一行有两个整数N,M(1 <= N, M <= 100000),分别表示兔子的个数和箭的种类;
第二行有N个正整数,分别表示兔子的血量Bi(1 <= i <= N);
第三行有M个正整数,表示每把箭所能造成的伤害值Di(1 <= i <= M);
第四行有M个正整数,表示每把箭需要花费的QQ币Pi(1 <= i <= M)。

特别说明:
1、当箭的伤害值大于等于兔子的血量时,就能将兔子杀死;
2、血量Bi,箭的伤害值Di,箭的价格Pi,均小于等于100000。
 

Output
如果不能杀死所有兔子,请输出”No”,否则,请输出最少的QQ币数,每组输出一行。
 

Sample Input
3 3 1 2 3 2 3 4 1 2 3 3 4 1 2 3 1 2 3 4 1 2 3 1
 

Sample Output
6 4
 


分析:把箭按价格升序排序,对于每把箭找一个"最合适的"(小于等于该箭的伤害值的最大值)兔子。

#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
const int N=100000;
template <class T>
inline void scan_d(T &ret) {
    char c;ret=0;
    while((c=getchar())<'0'||c>'9');
    while(c>='0'&&c<='9')ret=ret*10+(c-'0'),c=getchar();
}
struct arrow{
    int d,p;
    bool operator<(arrow a1)const{return p<a1.p;}
}a[N];
multiset<int> S;
multiset<int>::iterator po;
int main(){
    int n,m,i,b;
    while(~scanf("%d%d",&n,&m)){
        S.clear();
        for(i=0;i<n;i++)scan_d(b),S.insert(b);
        for(i=0;i<m;i++)scan_d(a[i].d);
        for(i=0;i<m;i++)scan_d(a[i].p);
        sort(a,a+m);
        __int64 ans=0;
        for(i=0;i<m;i++){
			po=S.upper_bound(a[i].d);
			if(po!=S.begin()){
                S.erase(S.find(*--po));
                ans+=a[i].p;
            }
			if(S.empty())break;
        }
		if(S.empty())printf("%I64d\n",ans);
        else puts("No");
    }
    return 0;
}


 

湫湫系列故事——消灭兔子 HDU - 4544(贪心+优先队列) 湫湫系列故事——消灭兔子 HDU - 4544 湫湫减肥   越减越肥!   最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。   游戏规则很简单,用箭杀死免子即可。   箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买。   假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要的QQ币。 Input 输入数据有多组,每组数据有四行; 第一行有两个 阅读详情

相关推荐

HDU-4544 湫湫系列故事——消灭兔子 (贪心+优先队列)

题目思路 将兔子的血量从大到小排列,将箭的属性写在类中(结构体也成),排序按照伤害从大到小排列,若有相等的则按价格从小到大排。 代码 #include<bits/stdc++.h> using namespace std; int N, M; const int maxn = 100000+10; int b[maxn], d[maxn], p[maxn]; class Arrow {...

无论多么困难,也要熬下去!!! 308

HDU 4544 湫湫系列故事——消灭兔子 (优先队列)

湫湫系列故事——消灭兔子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 138    Accepted Submission(s): 49 Problem Description   湫湫减肥  越减越肥!    最近,减肥失败的湫...

weixin_34247299的博客 284

C++实现贪心+优先队列算法

1、实现贪心+优先队列算法要求(消灭兔子)        n个兔子,每个兔子都有一个血量b[i] ;m种箭(每种各一支),每种箭都有伤害值d[i]和价格p[i] ;每个兔子只能被射一次,伤害值大于血量则死,每种箭只能用一次 ;问杀死所有兔子需要的最小价格为多少,若不能杀死,则No Solution m,n小于50000)。 2、实现思路       典型的贪心,每个兔子只能射一次,所以只能用...

程序猿老樊的博客 553

hdu 4544 湫湫系列故事——消灭兔子, 贪心算法+小顶堆

思路: 贪心算法 1)把所有兔子的血量安从大到小排序,并且把箭的伤害从大到小排序 2)排序后,从第一只兔子开始,把每支能杀死该兔子的箭的价格放到一个小顶堆里 3)若堆不空,获得小顶堆的堆顶元素,删除之,直到所有兔子都能被射死或者找不到一支射死兔子的箭结束 代码如下: #include #include #include #include using namespace st

small_small_chick的专栏 889

别再到处找模板了!我用这套软著申请材料(含用户手册+源代码模板)两个月搞定

本文提供了一套高效的软著申请材料模板,包括用户手册和源代码模板,帮助开发者两个月内快速完成申请。通过实战指南和常见误区解析,详细介绍了材料准备的规范与技巧,确保格式合规性,大幅提升审核通过率。

weixin_29268637的博客 548

相机中的归一化实现讲解

本分讲解了图像处理中常出现的两个相机归一化操作

weixin_42102084的博客 1475

HDU-4544-湫湫系列故事——消灭兔子

昨天这个题被数据量给吓着了,以为贪心没有办法做,结果今天才发现超多人都是用贪心做的。唉,是数据水了? 今天用了2种方法做,其实昨天都有想过。 优先队列: 代码: #include #include #include #include const int maxn=10e4+10; using namespace std; struct row { int di; int

z309241990的专栏 988

cst-python联合仿真的问题解决

cst与python联合仿真出现无法调用CST的问题解决

ayihu_的博客 2373

HDU 4544 湫湫系列故事——消灭兔子

Problem Description   湫湫减肥   越减越肥!      最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。   游戏规则很简单,用箭杀死免子即可。   箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1   假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要

iCpC之旅 866

MATLAB绘图中文乱码终极解决方案:从方框到清晰显示的全面指南

本文提供了MATLAB绘图中文乱码的全面解决方案。针对中文显示为方框的问题,从单次绘图的临时字体设置,到通过修改默认配置实现一劳永逸,再到系统级字体排查与Java环境配置,给出了详细的步骤指南。文章还涵盖了字体名称指定、图像导出防丢失以及跨平台协作等高级技巧,帮助用户彻底解决中文乱码困扰。

weixin_29093017的博客 614

Keil5安装教程(保姆级)Keil5mdk安装步骤

6、复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活mdk,显示mdk的使用期限。6、复制生成的激活码,粘贴在New License ID Code处,点击Add LIC,即可成功激活C51,显示mdk的使用期限;3、在安装文件中点击keygen.exe文件,粘贴复制过的CID,选择Target为C51,点击Generate,生成激活码;4、在弹出的界面中会自动安装在安装keil的路径,点击“Next”进行后续安装,安装完成后,点击“Finish”。

m6886258的博客 9万+

hdu-4544-湫湫系列故事——消灭兔子-贪心+stl

http://acm.hdu.edu.cn/showproblem.php?pid=4544 先排序直接贪心判断是否能杀死所有兔子 然后 按降序遍历兔子的生命值 把大于等于当前兔子生命值的箭都丢进优先队列or set 然后每次贪心选最小的即可 #include #include #include #include #include #include #include

缺氧 644

别再只跑recon-all了!FreeSurfer实战:从T1图像到freeview可视化的完整避坑指南

本文详细解析FreeSurfer从T1图像处理到freeview可视化的全流程,包括环境配置、recon-all深度解析、高级可视化技巧及性能优化策略。特别针对常见错误提供解决方案,帮助用户高效完成MRI数据分析,避免常见陷阱。

weixin_33404102的博客 353

HDU4544 湫湫系列故事——消灭兔子

湫湫系列故事——消灭兔子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1267    Accepted Submission(s): 433 Problem Description   湫湫减肥   越减越肥!

花花的笔记 1207

Vue+OpenLayers:解决中国境内OpenStreetMap地图加载问题

然而,在使用OpenLayers和Vue框架搭建地图应用时,很多中国开发者可能会遇到一个常见问题:OpenStreetMap(OSM)地图无法正常加载。为了解决这个问题,我们可以使用其他方式获取地图数据,比如使用国内的地图服务提供商。通过使用国内地图服务商提供的地图数据,我们可以解决OpenStreetMap地图加载问题。然后,我们创建一个OpenLayers地图对象,并指定地图图层的源为国内地图服务商提供的地图URL。属性,可以将地图的中心点和缩放级别调整到我们需要的位置。

CodeWhizZ的博客 8273

第8章-认知工程:构建Agent的认知飞轮与自进化《万物皆映射》

认知架构(Cognitive Architecture)是一个系统组织和运行其认知过程的整体设计。对人类而言,认知架构是大脑的结构和功能组织方式;对 AI Agent 而言,认知架构是它处理信息、做出决策、学习经验的系统设计。固定映射 vs 进化映射维度固定映射 Agent进化映射 Agent知识静态(训练时确定)动态(持续积累)策略固定(设计时确定)自适应(经验驱动)工具预定义自主发现/创建错误处理硬编码规则从错误中学习能力边界固定持续扩展在认知工程中,技能。

AI天才研究院 105

HDU - 4544 湫湫系列故事——消灭兔子 【multiset,贪心】

来自学妹“ww仙女”の思路:将兔子放入multiset中,由箭来找当前杀得死的血量最大的兔子。 来自学妹"ww仙女"の提示:最后的NO不要写成No哦,别交错题(逃) 代码: #include &lt;algorithm&gt; #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;set&gt; #include&lt...

智熄 262

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hdu 4544 湫湫系列故事——消灭兔子(优先队列 + 贪心)

Problem Description   湫湫减肥   越减越肥!      最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。   游戏规则很简单,用箭杀死免子即可。   箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1   假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要的Q

勿忘初衷 1464

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

湫湫系列故事——消灭兔子 HDU - 4544 (贪心)

湫湫减肥   越减越肥!      最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏。   游戏规则很简单,用箭杀死免子即可。   箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di(1 <= i <= M),每种箭需要一定的QQ币购买。   假设每种箭只能使用一次,每只免子也只能被射一次,请计算要消灭地图上的所有兔子最少需要...

wait 279

HDU 4544 湫湫系列故事——消灭兔子 (贪心+优先队列)

题目链接:HDU 4544 题面: 湫湫系列故事——消灭兔子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 2488    Accepted Submission(s): 820 Problem Des

David_Jett 975

hdu 4544 湫湫系列故事——消灭兔子(优先队列+贪心)

1、http://acm.hdu.edu.cn/showproblem.php?pid=4544 2、题目大意: 湫湫系列故事——消灭兔子 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 910    Accepted S

sdjzping的专栏 2109
上一篇: Codeforces 35E
下一篇: 2013年3月30日竞赛题目二 Sigma
libing923
博客等级 码龄15年 12粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值