HDU - 4310 Hero(贪心)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU - 4310 Hero(贪心)相关的知识,希望对你有一定的参考价值。
题意:无限生命,一点攻击力,和敌人对A(敌人只有攻击力和生命这两个属性),如何安排打到敌人的次序使得自己损失的生命最少。
攻击力高的可能血条很长,攻击力一般的可能血条很短,要先把相对比率高的先杀掉。
样例:2
100 1
101 100
2
100 1
1 100
第一个样例:10301 第二个:201
1 //100 1 2 //101 100 3 #include <iostream> 4 #include <algorithm> 5 using namespace std; 6 7 struct Enemy{ 8 int dps; 9 int hp; 10 }enemy[1010]; 11 12 bool cmp(Enemy a,Enemy b){ 13 return a.dps*b.hp>b.dps*a.hp;//按比率排序 14 } 15 16 int main(){ 17 int n; 18 while(cin>>n){ 19 int sum=0,lost=0; 20 for(int i=0;i<n;i++){ 21 cin>>enemy[i].dps>>enemy[i].hp; 22 sum+=enemy[i].dps; 23 } 24 sort(enemy,enemy+n,cmp); 25 for(int i=0;i<n;i++){ 26 lost+=sum*enemy[i].hp; 27 sum=sum-enemy[i].dps; 28 } 29 cout<<lost<<endl; 30 } 31 return 0; 32 }
以上是关于HDU - 4310 Hero(贪心)的主要内容,如果未能解决你的问题,请参考以下文章