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 ;
}

最新文章

  1. Java的输入方式总结
  2. erlang 虚机性能调优
  3. 在windows 下安装启动redis
  4. mysql数据库备份与还原命令
  5. kafka 0.8.x producer Example(scala)
  6. 使用xml方式定义补间动画
  7. 错误&quot;因为数据库正在使用,所以无法获得对数据库的独占访问权&quot;的解决方案
  8. E-BOM和M-BOM的区别
  9. 数论/the second wave
  10. 第二十章、启动流程、模块管理与 Loader grub
  11. FBX SDK 从2012.1 到 2013.3 变化
  12. Beautiful Numbers
  13. 手写总结:synchronized 和 lock 区别
  14. A+B for Input-Output Practice (VI)
  15. javascript之页面打印
  16. 一、commander
  17. 用Python实现支持向量机并处理Iris数据集
  18. GPIO知识点整理
  19. Scala学习(八)---Scala继承
  20. OpenCV 学习笔记 04 深度估计与分割

热门文章

  1. Spark 源码分析 -- Task
  2. HTTP代理服务器基本知识
  3. sigmoid &amp; softmax、cross-entropy、relu
  4. git&#160;删除所有提交下的某个文件
  5. 同步机制及windows同步函数的使用
  6. VS安装程序制作之MSI/EXE
  7. C++入门(1)
  8. 消息编解码Nanopb - protocol buffers
  9. python学习笔记(十五)异常处理
  10. Spark2.0 协同过滤推荐