首页 > 其他 > 详细

Fight Against Monsters Gym - 102222H【贪心】

时间:2019-12-28 17:13:23      阅读:79      评论:0      收藏:0      [点我收藏+]

贪心的策略

技术分享图片
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N=1e5+5;
 4 typedef long long ll;
 5 struct m
 6 {
 7     int hp,atk,num;
 8 }mon[N];
 9 bool cmp(m a,m b)
10 {
11     return a.atk*b.num>b.atk*a.num;//排序的依据是被攻击的次数和攻击力的乘积
12 }
13 int n;
14 int main()
15 {
16     int t,cas=0;
17     scanf("%d",&t);
18     while(t--)
19     {
20         scanf("%d",&n);
21         ll ack=0,ans=0;
22         for(int i=1;i<=n;i++)
23         {
24             scanf("%d%d",&mon[i].hp,&mon[i].atk);
25             ack+=mon[i].atk;
26             int t=(int)sqrt(mon[i].hp*2.0)-1;
27             while((t+1)*t/2<mon[i].hp)
28                 t++;
29             mon[i].num=t;
30         }
31         sort(mon+1,mon+1+n,cmp);
32         for(int i=1;i<=n;i++)
33         {
34             ans+=(mon[i].num*ack);
35             ack-=mon[i].atk;
36         }
37         printf("Case #%d: %lld\n",++cas,ans);
38     }
39     return 0;
40 }
View Code

Fight Against Monsters Gym - 102222H【贪心】

原文:https://www.cnblogs.com/1024-xzx/p/12112181.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!