题目

分析

贪心,

先将怪物按生命值从小到大排序(显然按这个顺序打是最优的)

枚举可以发对少次群体攻击,

首先将所有的群体攻击发出去,

然后一个一个怪物打,当当前怪物生命值大于2,如果还有魔法值就放重击,

其余情况普通攻击。

#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const long long maxlongint=2147483647;
const int mo=1000000007;
const int N=100005;
using namespace std;
long long a[N],n,m,ans,b[N],num;
int main()
{
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
num=maxlongint*10000000;
sort(a+1,a+1+n);
for(int i=0;i<=m;i++)
{
ans=0;
for(int j=1;j<=n;j++)
{
b[j]=a[j]-i;
if(b[j]>0) ans+=i;
else ans+=a[j]-1;
}
int j=m-i;
for(int k=1;k<=n;k++)
if(b[k])
{
while(j && b[k]>1)
{
j--;
if(b[k]==2)
{
ans+=n-k;
}
else
ans+=n-k+1;
b[k]-=2;
}
if(b[k]>0)
ans+=(n-k+1)*(b[k]-1)+n-k;
}
num=min(ans,num);
}
printf("%lld",num);
}

最新文章

  1. Django中 如何修改models字段的默认值
  2. awk
  3. SQL与C#结合完整修改 删除信息
  4. Service Oriented Architecture and WCF 【转】
  5. iOS开发的技能树
  6. iOS 集合的深复制与浅复制
  7. Riak VClock
  8. iOS基础 - 数据库CoreData
  9. LeetCode OJ 31. Next Permutation
  10. mybatis快速入门(七)-spring-mybatis整合
  11. Python与微信——itchat包
  12. T-1-java语言基础
  13. layui 弹窗的iframe 父子界面相互传值
  14. Vue+iview实现添加删除类
  15. Github API
  16. easyui 表格底部加合计
  17. dedecms自定义表单时间时间戳值类型的转换方法
  18. MySQL学习【第九篇存储引擎】
  19. bzoj 2724 在线区间众数
  20. CNN卷积减少参数个数的理解(分为全连接到CNN三个层级)

热门文章

  1. 深入浅出JavaScript(中文版)__莫里森 初读笔记
  2. 什么是token?你是怎么理解token?
  3. java课堂疑问解答与思考2
  4. USACO3.3 Home on the Range【思维】
  5. 深入理解java:2.3.4. 并发编程concurrent包 之容器ConcurrentLinkedQueue(非阻塞的并发队列---循环CAS)
  6. python 三元运算、列表推倒式、字典推倒式、生成器生成式
  7. xshell登陆后脚本
  8. Solrcloud单机伪集群部署
  9. [转帖]Ubuntu 对应内核版本
  10. lamp项目上线流程简述 (ubuntu16.04 )