BZOJ 3709: [PA2014]Bohater 贪心
来源:互联网 发布:如何查看mac激活时间 编辑:程序博客网 时间:2024/04/28 22:49
时空隧道
分析:
这种题基本上都是贪心了…
我们考虑怎样安排才能使得自己不会死掉…QAQ…当然是生命值越大越好…所以为们应该贪心的先使自己的生命值增大再去减小生命值…
所以我们就得到了一个大概的贪心方法…对于每一个怪物记录一个值叫做c=a-d…然后先选c>0的再选c<0的…
那么c>0的应该按照怎样的顺序呢?
还是同样的贪心思想…先选伤害小的…这样能够使得自己死的慢一点…(反正你最后生命值都在增大…所以就要把伤害打的留在后面生命值大的时候去干掉怪物…)
那c<0的时候呢?当然是先选回血值大的…因为反正你都要减小生命值了…那么你就尽可能的让自己回血多一点…
(小环子有一个更机智的解释(QAQ为此她嘲笑了我好久QAQ):
倒着想…就是我们考虑最后一个…因为受的总伤害值是不变的…所以说最后一个回血值是没有用的,那就让他尽量小…机智啊…)
代码如下:
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>//by NeighThornusing namespace std;//秋兰兮麋芜,罗生兮堂下const int maxn=100000+5;int n,stk[maxn]; long long z;struct M{ int a,d,c,num;}s[maxn];inline bool cmp1(M x,M y){ return x.c>y.c;}inline bool cmp2(M x,M y){ return x.d<y.d;}inline bool cmp3(M x,M y){ return x.a>y.a;}signed main(void){ scanf("%d%lld",&n,&z); for(int i=1;i<=n;i++) scanf("%d%d",&s[i].d,&s[i].a),s[i].c=s[i].a-s[i].d,s[i].num=i; sort(s+1,s+n+1,cmp1);int id=1; for(;id<=n&&s[id].c>0;id++);id--; sort(s+1,s+id+1,cmp2);sort(s+id+1,s+n+1,cmp3); for(int i=1;i<=n;i++){ z-=s[i].d; if(z<=0) {puts("NIE");return 0;} else z+=s[i].a,stk[i]=s[i].num; }puts("TAK"); for(int i=1;i<=n;i++) printf("%d ",stk[i]); puts(""); return 0;}
by >_< NeighThorn
1 0
- bzoj 3709 [PA2014]Bohater(贪心)
- 【贪心】bzoj 3709:[PA2014]Bohater
- BZOJ 3709: [PA2014]Bohater 贪心
- bzoj 3709: [PA2014]Bohater 贪心
- BZOJ 3709: [PA2014]Bohater 贪心
- BZOJ 3709: [PA2014]Bohater (贪心
- BZOJ 3709: [PA2014]Bohater 贪心
- BZOJ 3709 [PA2014]Bohater 贪心
- 3709: [PA2014]Bohater|贪心
- BZOJ 3709: [PA2014]Bohater
- BZOJ 3079 [PA2014]Bohater 贪心
- [bzoj-3709][PA2014]Bohater 题解
- 【BZOJ】【P3709】【PA2014】【Bohater】【题解】【贪心】
- BZOJ 3709 Bohater 【贪心】
- 3709: [PA2014]Bohater
- 3709: [PA2014]Bohater
- 3709: [PA2014]Bohater
- bzoj3709 [PA2014]Bohater
- 制作启动盘
- SONATYPE NEXUS 搭建MAVEN 私服
- UVALive 7512 November 11th
- js获取上传图片真实的尺寸大小和存储大小
- 进程间通信 - 命名管道实现
- BZOJ 3709: [PA2014]Bohater 贪心
- JFinal学习记录-获取路径
- 2010年写的一个小工具发现原来只需一行命令即可!
- 使用scrapy-deltafetch实现爬虫增量去重
- Python(十四)数据类型判断
- PCA主成分分析
- Redis学习笔记7--Redis管道(pipeline)
- hbase内存调优
- Java中负数的二进制表示