题目链接:https://cn.vjudge.net/problem/HDU-4310

题意

打dota,队友太菜,局势变成1vN。还好你开了挂,hp无限大(攻击却只有一点每秒-_-)。

但是你并不想被A太多下,所以问题来了

给出对面的血量和每秒输出大小

问怎么安排,使得打败所有人后掉血最少

思路

首先可以想到我们必须一个一个打,这样所有人的总输出时间最少

因为如果打A一下,B一下,AB总输出肯定更大

其次考虑1v2的情况,因为1vN同理可得

现有ab两敌人

先打a的总输出为

\[DPS_a*HP_a + DPS_b*(HP_a+HP_b)
\]

先打b的总输出为

\[DPS_b*HP_b + DPS_a*(HP_a+HP_b)
\]

差别就在 $$DPS_bHP_a , DPS_aHP_b $$

代码

#include <cstdio>
#include <algorithm>
using namespace std;
struct Hero{
int hp, dps;
Hero(int hp=0, int dps=0):hp(hp),dps(dps) {}
bool operator < (const Hero &a) const{
return dps*a.hp>a.dps*hp;
}
}heroes[25]; int main(void){
int n;
while (scanf("%d", &n)==1 && n){
for (int i=0; i<n; i++)
scanf("%d%d", &heroes[i].dps, &heroes[i].hp);
sort(heroes, heroes+n); int sum=0, time=0;
for (int i=0; i<n; i++){
time+=heroes[i].hp;
sum+=heroes[i].dps*time;
}printf("%d\n", sum);
} return 0;
}
Time Memory Length Lang Submitted
None 1512kB 621 G++ 2018-02-08 21:55:55

最新文章

  1. extern extern “C”用法详解
  2. java 单利模式
  3. jboss jms 实例
  4. Delphi下使用Oracle Access控件组下TOraSession控件链接
  5. Linux splint命令
  6. mysql pid文件
  7. linux 系统管理 使用技巧
  8. Redis和Memcache的区别分析
  9. C#判断文件是复制还是剪切
  10. 单点登陆CAS安装过程中可能遇到的问题
  11. MySQL高可用解决方案(MySQL HA Solution)
  12. 武汉科技大学ACM :1004: 华科版C语言程序设计教程(第二版)课后习题3.7
  13. PC-lint 简明教程
  14. PHP开发之路之一--WAMP的安装和配置
  15. Spring源码情操陶冶-AbstractApplicationContext#prepareRefresh
  16. 《Pro SQL Server Internals, 2nd edition》15w
  17. this和判断的位置对赋值的要求
  18. thinkphp5 数据库和模型
  19. Mysql canal 监控数据变化
  20. 源码安装postgresql数据库

热门文章

  1. DateForamt和SimpleDateFormat
  2. 一天一个算法:C语言解答杨辉三角
  3. ios问题bug收录——1
  4. winform控件命名规范对照表
  5. Servlet学习(九)——request
  6. C# AES 加解密处理
  7. NodeJS学习笔记 (4)网络服务-http(ok)
  8. [NOIP2012提高组]疫情控制
  9. rdesktop 脚本
  10. 【Educational Codeforces Round 41 (Rated for Div. 2) D】Pair Of Lines