Codeforces 1296D - Fight with Monsters
题目大意:
n 只怪兽,每只的血量为 h[i] ,你的攻击力为 a ,你的对手攻击力为 b
打每只怪兽时,都是你先出手,然后你的对手出手,这样轮流攻击
如果是你给予了怪兽最后一击,你就能得到一分
你还有 k 次机会能让你的对手暂停行动一回合
问你最多能拿到多少分
解题思路:
记你加上你的对手两个人各攻击一次造成的伤害为 s=a+b
贪心可得,如果想节省那 k 次机会,应该和对手一起把怪兽耗到只剩一点血,即能在最后一回合杀死的情况时
即怪兽减去的血量为 s 的倍数,表示经过了这么多回合后,怪兽的血量降到了 s 以内,能够决定是你或者你的对手给予的最后一击了
对于血量的计算,可以用 h=(h-1)%s+1 来降低到 1~s 的范围内
然后判断这个 h ,如果h属于1~a,说明肯定是你击败这只怪兽,直接点数加一,考虑下一只
但如果是在 a+1~s 这个区间,说明如果你不使用那 k 次机会的话,会由对手给予最后一击
而如果要使用这些机会,则需要使用【 (h-a)/a 向上取整】次机会才行
贪心易得,需要把这些机会从小到大排序,然后先把机会用在需要次数少的怪兽上
全部处理完后输出答案即可
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(){
vector<ll> v;
ll n,a,b,k,s,h,d,i,len,ans=;
cin>>n>>a>>b>>k;
s=a+b;
while(n--){
cin>>h;
d=(h-)%s+;
if(d<=a)
ans++;
else
v.push_back(d-a);
}
sort(v.begin(),v.end());
len=v.size();
for(i=;i<len;i++){
d=(v[i]+a-)/a;//向上取整
if(k>=d){
k-=d;
ans++;
}
}
cout<<ans<<'\n';
}
int main(){
ios::sync_with_stdio();
cin.tie();cout.tie();
solve(); return ;
}
Codeforces 1296D - Fight with Monsters的更多相关文章
- Codeforces - 102222H - Fight Against Monsters - 贪心
https://codeforc.es/gym/102222/problem/H 题意:有一堆怪兽,怪兽有HP和ATK.你有一个英雄,英雄每次先被所有怪兽打,然后打其中一个怪兽.打的伤害递增,第一次1 ...
- Codeforces Round #617 (Div. 3) D. Fight with Monsters
D : Fight with Monsters 题目大意 : 有一组数,每个值对应着一个怪物的 hp 值,现在有两个人,一个自己一个对手,每个人有一个攻击值, 两个人轮流攻击怪物,如果是自己将怪物先打 ...
- D. Fight with Monsters
D. Fight with Monsters time limit per test 1 second memory limit per test 256 megabytes input standa ...
- Codeforces #617 (Div. 3) D. Fight with Monsters(贪心,排序)
There are nn monsters standing in a row numbered from 11 to nn . The ii -th monster has hihi health ...
- Codeforces 954D Fight Against Traffic(BFS 最短路)
题目链接:Fight Against Traffic 题意:有n个点个m条双向边,现在给出两个点S和T并要增加一条边,问增加一条边且S和T之间距离不变短的情况有几种? 题解:首先dfs求一下S到其他点 ...
- Codeforces 488C Fight the Monster
Fight the Monster time limit per test 1 second memory ...
- 2018 ACM-ICPC 宁夏 H.Fight Against Monsters(贪心)
It is my great honour to introduce myself to you here. My name is Aloysius Benjy Cobweb Dartagnan Eg ...
- 2019 ICPC 银川网络赛 H. Fight Against Monsters
It is my great honour to introduce myself to you here. My name is Aloysius Benjy Cobweb Dartagnan Eg ...
- codeforces 487a//Fight the Monster// Codeforces Round #278(Div. 1)
题意:打怪兽.可增加自己的属性,怎样在能打倒怪兽的情况下花费最少? 这题关键要找好二分的量.一开始我觉得,只要攻击到101,防御到100,就能必胜,于是我对自己的三个属性的和二分(0到201),内部三 ...
随机推荐
- P1086 就不告诉你
转跳点:
- vSphere HA 原理与配置
内容预览: 1. vSphere HA 概述 2. vSphere HA 提供的保护级别 3. vSphere HA运行原理 4. vSphere HA 故障支持场景 5. vSphere HA接入控 ...
- Linux-Power-management
1. 低级接口1.1 内核(swsusp)软件挂起1.1.1 睡眠状态的2个控制文件1.1.2 查看当前系统的睡眠控制文件内容1.1.3 状态表(表1)1.1.4 状态的使用1.2 uswsusp用户 ...
- ThinkCMF框架上的任意内容包含漏洞
一.背景 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建. ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据 ...
- Spring MVC RedirectAttributes取值方法
RedirectAttributes是Spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的他有两种带参的方式:第一种: attr.addAttribute(" ...
- 使用Hibarnate: 出现 java.sql.SQLException: ORA-00911: 无效字符, 解决思路
1. 查看到: Hibernat自动生成的sql查询语句 Hibernate: select * from ( select module0_.MODULE_ID as MODULE_ID1_1_, ...
- 前端学习(22)~css问题讲解
你是如何理解 HTML 语义化的? 语义化:指对文本内容的结构化(内容语义化),选择合乎语义的标签(代码语义化). 举例:段落用 p,边栏用 aside,主要内容用 main 标签. 好处: 便于开发 ...
- pacificrack 控制面板登录不上的问题
我今天又试了一下: https://master-stack01.pacificrack.com还是登不上(这个一键烦恼了我一个星期了,但是我今天百度出来了解决办法) 然后用这个就可以了 https ...
- Linux 安装gcc g++
Linux版本: cat /proc/version Linux version 3.10.0-693.11.6.el7.x86_64 (mockbuild@x86-041.build.eng.bos ...
- ArrayList与LindedList区别
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList ...