hdu4310 - Hero - 简单的贪心
2024-10-20 20:53:00
2017-08-26 15:25:22
writer:pprp
题意描述:
• 1 VS n对战,回合制(你打他们一下,需要受到他们所有存活人的
攻击)
• 你的血量无上限,攻击力为1
• 对手血量及攻击力给定
• 消灭所有敌人掉最少的血量
• n ≤ 20
贪心的去做,应该优先解决那些攻击力高血量低的敌人,所以应该按照 攻击力/血量 降序排列然后处理就好了
代码如下:
/*
@theme:hdu 4310
@writer:pprp
@declare:简单的贪心算法 将攻击力/血量最高的敌人先进攻下来就行了
@date:2017/8/26
*/
#include <bits/stdc++.h> using namespace std;
class enemy
{
public:
double dps;
double hp;
} emy[]; struct cmp
{
bool operator()(const enemy& a, const enemy&b)
{
return a.dps/a.hp > b.dps/b.hp;
}
}; int main()
{
int n; while(cin >> n && n >= && n <= )
{
double ans = ;
double sum_dps = ;
for(int i = ; i < n ; i++)
{
cin >> emy[i].dps >> emy[i].hp;
sum_dps += emy[i].dps;
} sort(emy, emy + n,cmp()); // for(int i = 0 ; i < n ;i++)
// {
// cout << emy[i].dps << " " << emy[i].hp << endl;
// } for(int i = ; i < n ; i++)
{
if(i == )
{
ans += emy[].hp * sum_dps;
}
else
{
sum_dps -= emy[i-].dps;
ans += emy[i].hp * sum_dps;
}
} cout << ans << endl;
}
return ;
}
最新文章
- Java的输入方式总结
- erlang 虚机性能调优
- 在windows 下安装启动redis
- mysql数据库备份与还原命令
- kafka 0.8.x producer Example(scala)
- 使用xml方式定义补间动画
- 错误";因为数据库正在使用,所以无法获得对数据库的独占访问权";的解决方案
- E-BOM和M-BOM的区别
- 数论/the second wave
- 第二十章、启动流程、模块管理与 Loader grub
- FBX SDK 从2012.1 到 2013.3 变化
- Beautiful Numbers
- 手写总结:synchronized 和 lock 区别
- A+B for Input-Output Practice (VI)
- javascript之页面打印
- 一、commander
- 用Python实现支持向量机并处理Iris数据集
- GPIO知识点整理
- Scala学习(八)---Scala继承
- OpenCV 学习笔记 04 深度估计与分割