【PA2014】Bohater 题解(贪心)
前言:一道经典贪心题。
--------------------------
题目大意:你有$z$滴血,要打$n$只怪。打第$i$只怪扣$d_i$滴血,回$a_i$滴血。问是否存在一种能够通关的打怪顺序。
-------------------------------
显然所有怪分为两种:扣血的怪$d_i>a_i$和回血的怪$d_i\leq a_i$。那么贪心策略是什么?
对于回血的怪,我们有若干贪心策略,例如:
1.按照$d_i$升序排列。
2.按照$a_i$降序排列。
3.按照$a_i-d_i$降序排列
$\cdots$
我们选择第一种。打个形象的比喻:假如你砍它一秒一刀$999999999$,但是它一秒一刀砍你$99999999$,你有$9999999$滴血,那显然会挂。所以我们只能从零开始打怪生活。
对于扣血的怪,我们是按照$a_i$降序排列。理由很简单:反正怎么都是扣血,我们还不如先把回血多的怪打了。反正如果你通不了关,那无论什么顺序都没有用。
在输入的时候讲怪进行分类,分别处理即可。
代码:
#include<bits/stdc++.h>
using namespace std;
int n,z;
struct node
{
int id,d,a;
}add[],kou[];
int addcnt,koucnt;
inline int read()
{
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {if (ch=='-')f=-;ch=getchar();}
while(isdigit(ch)){x=x* +ch-'';ch=getchar();}
return x*f;
}
bool cmp1(node a,node b)
{
return a.d<b.d;
}
bool cmp2(node a,node b)
{
return a.a>b.a;
}
int main()
{
n=read(),z=read();
for (int i=;i<=n;i++)
{
int b=read(),c=read();
if (c>=b){add[++addcnt]=(node){i,b,c};}
else{kou[++koucnt]=(node){i,b,c};}
}
sort(add+,add+addcnt+,cmp1);
sort(kou+,kou+koucnt+,cmp2);
for (int i=;i<=addcnt;i++)
{
if (add[i].d>=z) {cout<<"NIE";return ;}
else z=z-add[i].d+add[i].a;
}
for (int i=;i<=koucnt;i++)
{
if (kou[i].d>=z) {cout<<"NIE";return ;}
else z=z-kou[i].d+kou[i].a;
}
cout<<"TAK"<<endl;
for (int i=;i<=addcnt;i++) cout<<add[i].id<<" ";
for (int i=;i<=koucnt;i++) cout<<kou[i].id<<" ";
return ; }
【PA2014】Bohater 题解(贪心)的更多相关文章
- BZOJ3709 [PA2014]Bohater 【贪心】
题目链接 BZOJ3709 题解 贪心很显然 我们先干掉能回血的怪,当然按照\(d\)升序顺序,因为打得越多血越多,\(d\)大的尽量往后打 然后再干掉会扣血的怪,当然按照\(a\)降序顺序,因为最后 ...
- bzoj3709: [PA2014]Bohater(贪心)
贪心... 可以回血的按d[i]升序防止死掉 不能回血的按a[i]降序,因为只考虑d我们要扣除的血量是一定的,为了不死显然回血多的放前面更好 #include<iostream> #inc ...
- BZOJ 3709 [PA2014]Bohater:贪心【反过来考虑】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3709 题意: 在一款电脑游戏中,你需要打败n只怪物(从1到n编号). 为了打败第i只怪物, ...
- 【BZOJ】3709: [PA2014]Bohater(贪心)
http://www.lydsy.com/JudgeOnline/problem.php?id=3709 很水的题...但是由于脑洞小..漏想了一种情况.. 首先显然能补血的先杀.. 然后杀完后从补血 ...
- 【BZOJ3709】 [PA2014]Bohater(贪心)
传送门 BZOJ Solution 考虑如果可以回血肯定要打,那么就是按照伤害值从小到大排个序能打就打,不能打就\(NIE\). 接着看不能够回血的,emmm,把这个过程反着看一下就是打一个怪扣\(a ...
- bzoj 3709: [PA2014]Bohater【贪心】
先打能回血的,按消耗从小到大打: 然后按回血量降序打剩下的(把消耗和回血反着看就是上一种怪,打法一样): 中间体力小于0就输出无解 #include<iostream> #include& ...
- 【贪心】bzoj 3709:[PA2014]Bohater
3709: [PA2014]Bohater Time Limit: 5 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 653 Solved: ...
- BZOJ3709: [PA2014]Bohater
3709: [PA2014]Bohater Time Limit: 5 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 339 Solved: ...
- BZOJ 3709: [PA2014]Bohater
3709: [PA2014]Bohater Time Limit: 5 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1050 Solved: ...
- 【BZOJ3716】[PA2014]Muzeum(贪心,网络流)
[BZOJ3716][PA2014]Muzeum(贪心,网络流) 题面 BZOJ 题解 很明显可以写最大权闭合子图,然后会\(TLE\)成傻逼. 为了方便,就把一个警卫能够看到的范围处理一下(把坐标系 ...
随机推荐
- Mysql基础(三):MySQL基础数据类型、完整性约束、sql_mode模式
目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 2. 完整性约束 3. MySQL的sql_mode模式说明以及设置 2.MySQL基础数据类型.完整 ...
- drf源码剖析系列(系列目录)
drf源码剖析系列(系列目录) 01 drf源码剖析之restful规范 02 drf源码剖析之快速了解drf 03 drf源码剖析之视图 04 drf源码剖析之版本 05 drf源码剖析之认证 06 ...
- 并发编程之关键字(synchronized、volatile)
并发编程主要设计两个关键字:一个是synchronized,另一个是volatile.下面主要讲解这两个关键字,并对这两个关机进行比较. synchronized synchronized是通过JMV ...
- Apache Avro & Avro Schema简介
为什么需要schema registry? 首先我们知道: Kafka将字节作为输入并发布 没有数据验证 但是: 如果Producer发送了bad data怎么办? 如果字段被重命名怎么办? 如果数据 ...
- 小白从零开始阿里云部署react项目+node服务接口(二:node服务+web)
我们用极简的方式来创建服务,没有任何附加功能 1 新建一个server文件夹 2 使用npm init 或者yarn init 一路enter 3 yarn add express cors ...
- ant design pro 实战 : 使用 ztree
应当指出,antd 是有 ztree 组件的,但是太简单,无法满足复杂的业务需求. 所以我还是决定使用zTree. 用 npm | cnpm 或者 yarn | tyarn 安装,这一步略. 在 js ...
- cmd : 代理设置/检验代理设置成功
设置代理很简单,一句话的事儿. set HTTP_PROXY=http://user:password@proxy.domain.com:port 比如说,我用ssr,默认地址是127.0.0.1:1 ...
- vue : rem自适应的应用
我们知道,rem是一个css单位,指的是HTML根节点的字体大小. MDN:css单位 而我们在用rem布局的时候必然会遇到一个问题:我们需要根据用户的屏幕大小去计算rem. 以下是代码. (在VUE ...
- Python基础点记录2
---- PygLatin 1 介绍函数的调用,就是直接函数名 def square(n): squared = n**2 print "%d squared is %d." % ...
- package.json中dependencies和devDependencies区别
package.json中dependencies和devDependencies区别 dependencies: 应用能够正常运行依赖的包.用户发布环境,依赖的包不仅开发环境能够使用,生产环境也能使 ...