BZOJ 3709: [PA2014]Bohater 贪心
2016-10-21 17:32
465 查看
时空隧道
分析:
这种题基本上都是贪心了…
我们考虑怎样安排才能使得自己不会死掉…QAQ…当然是生命值越大越好…所以为们应该贪心的先使自己的生命值增大再去减小生命值…
所以我们就得到了一个大概的贪心方法…对于每一个怪物记录一个值叫做c=a-d…然后先选c>0的再选c<0的…
那么c>0的应该按照怎样的顺序呢?
还是同样的贪心思想…先选伤害小的…这样能够使得自己死的慢一点…(反正你最后生命值都在增大…所以就要把伤害打的留在后面生命值大的时候去干掉怪物…)
那c<0的时候呢?当然是先选回血值大的…因为反正你都要减小生命值了…那么你就尽可能的让自己回血多一点…
(小环子有一个更机智的解释(QAQ为此她嘲笑了我好久QAQ):
倒着想…就是我们考虑最后一个…因为受的总伤害值是不变的…所以说最后一个回血值是没有用的,那就让他尽量小…机智啊…)
代码如下:
by >_< NeighThorn
分析:
这种题基本上都是贪心了…
我们考虑怎样安排才能使得自己不会死掉…QAQ…当然是生命值越大越好…所以为们应该贪心的先使自己的生命值增大再去减小生命值…
所以我们就得到了一个大概的贪心方法…对于每一个怪物记录一个值叫做c=a-d…然后先选c>0的再选c<0的…
那么c>0的应该按照怎样的顺序呢?
还是同样的贪心思想…先选伤害小的…这样能够使得自己死的慢一点…(反正你最后生命值都在增大…所以就要把伤害打的留在后面生命值大的时候去干掉怪物…)
那c<0的时候呢?当然是先选回血值大的…因为反正你都要减小生命值了…那么你就尽可能的让自己回血多一点…
(小环子有一个更机智的解释(QAQ为此她嘲笑了我好久QAQ):
倒着想…就是我们考虑最后一个…因为受的总伤害值是不变的…所以说最后一个回血值是没有用的,那就让他尽量小…机智啊…)
代码如下:
#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> //by NeighThorn using 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
相关文章推荐
- 【BZOJ4619/3709】[Wf2016]Swap Space/[PA2014]Bohater 贪心
- 【贪心】bzoj3709 [PA2014]Bohater
- bzoj 3709: [PA2014]Bohater 贪心
- 【贪心】bzoj 3709:[PA2014]Bohater
- bzoj 3709 [PA2014]Bohater(贪心)
- BZOJ3709 [PA2014]Bohater 【贪心】
- bzoj 3709: [PA2014]Bohater 贪心
- bzoj 3709: [PA2014]Bohater【贪心】
- BZOJ 3709: [PA2014]Bohater 贪心
- BZOJ 3709: [PA2014]Bohater 贪心
- 【BZOJ】3709: [PA2014]Bohater(贪心)
- BZOJ3709 [PA2014]Bohater
- 3709: [PA2014]Bohater (贪心)
- 【BZOJ】【P3709】【PA2014】【Bohater】【题解】【贪心】
- [bzoj-3709][PA2014]Bohater 题解
- 3709: [PA2014]Bohater|贪心
- bzoj 3709: [PA2014]Bohater
- 3709: [PA2014]Bohater 贪心
- 【bzoj3709】[PA2014]Bohater
- BZOJ 3079 [PA2014]Bohater 贪心