HDU4310贪心
来源:互联网 发布:淘宝的有好货怎么上 编辑:程序博客网 时间:2024/05/12 22:58
题意:打Dota, 你的队友死了,就你一个人,你需要1Vn,你的攻击只有一点,也就是你打敌方hero一下只能打掉他一滴血,但是你的hp是无限的,打斗是回合制:你打他们中的一个一下,他们所有的英雄打你一下(你掉的血就是他们还活着的hero的总攻击)。贪心思想,你会发现,先干掉 攻击/血量 最大的敌方hero便是本题的贪心策略,所以,对 攻击/血量 降序排序,一个一个的干掉,贴代码:
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;typedef struct node{ int hp, dps;};node hero[100];int cmp(node a, node b){ return 1.0*a.dps/a.hp > 1.0*b.dps/b.hp;}int main(){ int n, sumdps = 0, sumhp = 0; while(~scanf("%d", &n)) { sumdps = sumhp = 0; for(int i=0; i<n; ++i) { scanf("%d%d", &hero[i].dps, &hero[i].hp); sumdps += hero[i].dps; } sort(hero, hero+n, cmp); for(int i=0; i<n; ++i) { sumhp += sumdps*hero[i].hp; sumdps -= hero[i].dps; } printf("%d\n", sumhp); } return 0;}
0 0
- hdu4310(贪心)
- HDU4310贪心
- hdu4310 Hero 贪心证明
- hdu4310 Hero 贪心
- hdu4310 Hero(贪心)
- hdu4310 Hero (贪心)
- hdu4310 Hero(贪心)
- hdu4310(贪心)
- hdu4310(贪心)
- hdu4310 Hero(贪心)
- hdu4310
- hdu4310
- hdu4310
- 简单典型贪心---(解题报告)HDU4310---Hero
- HDU4310:Hero
- HERO(HDU4310)
- hdu4310 hero
- hdu4310 Hero
- NYOJ题目244---16进制的简单运算
- JSP+Tomcat+MySQL(1)
- android 图像缩放
- 计数排序
- Thinkphp 数据库使用
- HDU4310贪心
- mfc增加托盘图标
- C++静态库与动态库
- Linux内核启动源码跟踪-gdb调试篇
- 浅谈 my_strstr()函数与my_strrstr()函数的实现
- dpkg 被中断,您必须手工运行 sudo dpkg –configure -a解决此问题
- 第三周 【项目5 - 数组作数据成员】(4)
- 程序猿的日常-9
- C++ 构造,析构顺序(静态对象)