HDU 2831 (贪心)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2831
题目大意:植物大战僵尸。给定种植植物时间间隔t,以及每个僵尸的到达时间v,生命d。问是否能赢。
解题思路:
按照打完每只Zombie之后剩余时间v-d,从小到大排序。
理由如下:
设打完第i只Zombie的剩余时间为:$Remain(v,d)=V-i*t-D$
那么本题的目标函数为:$arg\max \limits_{i}\sum Remain(v,d)=V-i*t-D$
所以,应当尽可能把v-d较小的值放在i的前面,让Remain(v,d)尽可能大。
排序完之后,进行模拟,now=0,当前时间为0
从第1只Zombie算起,now+=t:
$if \quad Attack Time<D \quad then\quad GameOver$
注意,不可以取等,样例说明,正好到达位置被打死也会GameOver。
#include "cstdio"
#include "algorithm"
using namespace std;
struct Zombie
{
int v,d,idx;
bool operator < (const Zombie &a) const {return v-d<a.v-a.d;}
}z[];
int main()
{
//freopen("in.txt","r",stdin);
int n,t;
while(scanf("%d%d",&n,&t)!=EOF)
{
for(int i=;i<n;i++) scanf("%d%d",&z[i].v,&z[i].d),z[i].idx=i+;
sort(z,z+n);
int now=;
bool flag=true;
for(int i=;i<n;i++)
{
now+=t;
int ret=z[i].v-now;
if(ret<z[i].d) {flag=false;break;}
}
if(flag)
{
for(int i=;i<n-;i++) printf("%d ",z[i].idx);
printf("%d\n",z[n-].idx);
}
else printf("The zombies eat your brains!\n");
}
}
HDU 2831 (贪心)的更多相关文章
- Hdu 5289-Assignment 贪心,ST表
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 4803 贪心/思维题
http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么? G++ AC C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...
- hdu 1735(贪心) 统计字数
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...
- hdu 4974 贪心
http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...
- hdu 4982 贪心构造序列
http://acm.hdu.edu.cn/showproblem.php?pid=4982 给定n和k,求一个包含k个不相同正整数的集合,要求元素之和为n,并且其中k-1的元素的和为完全平方数 枚举 ...
- HDU 2307 贪心之活动安排问题
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2037 今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1052 贪心+dp
http://acm.hdu.edu.cn/showproblem.php?pid=1052 Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS ...
- HDU 2111 Saving HDU【贪心】
解题思路:排序后贪心,和fatmouse's trade 类似 Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: ...
- HDU 3090 (贪心)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3090 题目大意:一共n段路.每段路每千米都会被抢劫一定数量,可以雇佣武士护卫m千米.问最少被抢劫数量 ...
随机推荐
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- PHP面向对象——类常量,魔术常量与延期绑定
普通常量 define('常量名',常量值): 以前说过:define定义的常量,全局有效 无论是页面内,函数内,类内,都可以访问. 例: define('ACC','Deny') class ...
- PHP面向对象——重写与重载
重写/覆盖 override 指:子类重写了父类的同名方法 class Human{ public function say($name){ echo $ ...
- Dubbo超时和重连机制
dubbo启动时默认有重试机制和超时机制.超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败,重试机制在出现调用失败时,会再次调用.如果在配置的调用次数内都失败,则认为此 ...
- Ubuntu下调整swap分区的大小
转自:http://blog.chinaunix.net/uid-7573623-id-2048964.html 由于安装oracle 的时候,swap太小不能继续安装,于是想有什么方法在不不用安装o ...
- 【翻译六】java-连接和实例
Joins The join method allows one thread to wait for the completion of another. If t is a Thread obje ...
- NPOI读写Excel
1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...
- php开启mysqli扩展之后如何连接数据库
Mysqli是php5之后才有的功能,没有开启扩展的朋友可以打开您的php.ini的配置文件;相对于mysql有很多新的特性和优势,需要了解的朋友可以参考下 Mysqli是php5之后才有的功能,没有 ...
- hdu 5033 单调栈 ****
看出来是单调栈维护斜率,但是不会写,2333,原来是和询问放在一起的 #include <iostream> #include <cstdio> #include <cs ...
- 自己yy的Splay
#include <iostream> #include <cstdio> #include <queue> using namespace std; ; stru ...