【NOIP2016提高A组模拟10.15】打膈膜
2024-08-24 23:56:36
题目
分析
贪心,
先将怪物按生命值从小到大排序(显然按这个顺序打是最优的)
枚举可以发对少次群体攻击,
首先将所有的群体攻击发出去,
然后一个一个怪物打,当当前怪物生命值大于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);
}
最新文章
- Django中 如何修改models字段的默认值
- awk
- SQL与C#结合完整修改 删除信息
- Service Oriented Architecture and WCF 【转】
- iOS开发的技能树
- iOS 集合的深复制与浅复制
- Riak VClock
- iOS基础 - 数据库CoreData
- LeetCode OJ 31. Next Permutation
- mybatis快速入门(七)-spring-mybatis整合
- Python与微信——itchat包
- T-1-java语言基础
- layui 弹窗的iframe 父子界面相互传值
- Vue+iview实现添加删除类
- Github API
- easyui 表格底部加合计
- dedecms自定义表单时间时间戳值类型的转换方法
- MySQL学习【第九篇存储引擎】
- bzoj 2724 在线区间众数
- CNN卷积减少参数个数的理解(分为全连接到CNN三个层级)
热门文章
- 深入浅出JavaScript(中文版)__莫里森 初读笔记
- 什么是token?你是怎么理解token?
- java课堂疑问解答与思考2
- USACO3.3 Home on the Range【思维】
- 深入理解java:2.3.4. 并发编程concurrent包 之容器ConcurrentLinkedQueue(非阻塞的并发队列---循环CAS)
- python 三元运算、列表推倒式、字典推倒式、生成器生成式
- xshell登陆后脚本
- Solrcloud单机伪集群部署
- [转帖]Ubuntu 对应内核版本
- lamp项目上线流程简述 (ubuntu16.04 )