[BZOJ 3709] Bohater】的更多相关文章

Description 在一款电脑游戏中,你需要打败n只怪物(从1到n编号).为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值.任何时候你的生命值都不能降到0(或0以下).请问是否存在一种打怪顺序,使得你可以打完这n只怪物而不死掉 Input 第一行两个整数n,z(1<=n,z<=100000),分别表示怪物的数量和你的初始生命值.接下来n行,每行两个整数d[i],a[i](0<=d[i],a[i]<=100000) Output 第一…
今天起尝试做套题喵~ (当然是因为被最大流的题目弄得恶心死了) 一共是 10 道题一道一道做 预计 3~4 内做完 尽情期待 [BZOJ 3709]Bohater 一眼就能感受到贪心的气息 因为很直观地,能加血的怪先打掉是不二法则 所以把怪分为两类: 能加血的和要掉血的 前者按伤害升序排序,算出最大血量 但后者要怎么搞让我很是郁闷~一开始是按伤害降序的,结果秒 WA 了 想想也是 Z=1000 怪1: a=998 d=1 怪2: a=100 d=99 你说先打哪只? 看来和回血量也是有关系的,事…
BZOJ 3709• 有n只怪物,你的初始生命值为z.• 为了打败第i只怪物,你需要消耗cost[i]点生命值,但怪物死后会使你恢复val[i]点生命值.• 任何时候你的生命值都不能小于等于0.• 问是否存在一种打怪顺序,使得你可以打完这n只怪物而不死掉 • n≤100,000 一些怪物是赚血的,一些是亏血的. 肯定要先打完所有赚血的,再打亏血的. 打赚血的: 为了保证能够有血,先打cos小的最保险. 微扰法证明:如果先打大一些的,如果能打,那么打小一些的也能打,而且血更多了,一定还能打那一个大…
3709: [PA2014]Bohater Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1050  Solved: 352[Submit][Status][Discuss] Description 在一款电脑游戏中,你需要打败n只怪物(从1到n编号).为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值.任何时候你的生命值都不能降到0(或0以下).请问是否存在一种打怪顺…
3709: [PA2014]Bohater Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 653  Solved: 220[Submit][Status][Discuss] Description 在一款电脑游戏中,你需要打败n只怪物(从1到n编号).为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值.任何时候你的生命值都不能降到0(或0以下).请问是否存在一种打怪顺序…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3709 题意: 在一款电脑游戏中,你需要打败n只怪物(从1到n编号). 为了打败第i只怪物,你需要消耗atk[i]点生命值,但怪物死后会掉落血药,使你恢复rec[i]点生命值. 任何时候你的生命值都不能降到0(或0以下). 请问是否存在一种打怪顺序,使得你可以打完这n只怪物而不死掉. 题解: 怪物总共分两种,一种是打完能回血的,一种是打完会掉血的. 显然,先打能回血的,再打能掉血的. 分别…
题目: 在一款电脑游戏中,你需要打败\(n\)只怪物(从\(1\)到\(n\)编号).为了打败第\(i\)只怪物,你需要消耗\(d_i\)点生命值,但怪物死后会掉落血药,使你恢复\(a_i\)点生命值.任何时候你的生命值都不能降到\(0\)(或\(0\)以下).请问是否存在一种打怪顺序,使得你可以打完这\(n\)只怪物而不死掉 所有数均\(\leq 10^5\) 题解: 首先很明显地要先收掉所有总收益为正的怪物. 顺序的话稍微\(YY\)一下就会发现是按照消耗的生命值从小到大. 那么下面考虑如何…
先打能回血的,按消耗从小到大打: 然后按回血量降序打剩下的(把消耗和回血反着看就是上一种怪,打法一样): 中间体力小于0就输出无解 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=100005; int n,t1,t2; long long z; struct qwe { int d,a,id; }a[N],b[N]; bool cmp1(c…
首先,这是我n久之前培训的时候老师讲的题目了,今天突然看到,那就讲讲吧. 首先,我们考虑怎么打怪... 显然,我们需要保证这个怪要尽可能的打死(就是尽量不被干死),并且保证尽可能的净获得血量大的在前面 但是我们注意到,题目十分友好的说出了我们只需用输出一种方案就行 所以考虑最边界的情况(即贪心) 贪心,对于怪兽可以分成两类: 一类,打完之后血量不降反升,这些怪兽按照消耗血量从小到大排序: 一类,打完之后血量不升反降,这些怪兽按照恢复血量从大到小排序. 血量上升怪一定排在血量下降怪前面,易知这种打…
http://www.lydsy.com/JudgeOnline/problem.php?id=3709 很水的题...但是由于脑洞小..漏想了一种情况.. 首先显然能补血的先杀.. 然后杀完后从补血越多的杀..(这点我之前考虑错了QAQ) 正确性显然........ #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream>…