题目大意:

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的更多相关文章

  1. Codeforces - 102222H - Fight Against Monsters - 贪心

    https://codeforc.es/gym/102222/problem/H 题意:有一堆怪兽,怪兽有HP和ATK.你有一个英雄,英雄每次先被所有怪兽打,然后打其中一个怪兽.打的伤害递增,第一次1 ...

  2. Codeforces Round #617 (Div. 3) D. Fight with Monsters

    D : Fight with Monsters 题目大意 : 有一组数,每个值对应着一个怪物的 hp 值,现在有两个人,一个自己一个对手,每个人有一个攻击值, 两个人轮流攻击怪物,如果是自己将怪物先打 ...

  3. D. Fight with Monsters

    D. Fight with Monsters time limit per test 1 second memory limit per test 256 megabytes input standa ...

  4. 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 ...

  5. Codeforces 954D Fight Against Traffic(BFS 最短路)

    题目链接:Fight Against Traffic 题意:有n个点个m条双向边,现在给出两个点S和T并要增加一条边,问增加一条边且S和T之间距离不变短的情况有几种? 题解:首先dfs求一下S到其他点 ...

  6. Codeforces 488C Fight the Monster

    Fight the Monster time limit per test             1 second                                   memory ...

  7. 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 ...

  8. 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 ...

  9. codeforces 487a//Fight the Monster// Codeforces Round #278(Div. 1)

    题意:打怪兽.可增加自己的属性,怎样在能打倒怪兽的情况下花费最少? 这题关键要找好二分的量.一开始我觉得,只要攻击到101,防御到100,就能必胜,于是我对自己的三个属性的和二分(0到201),内部三 ...

随机推荐

  1. P1086 就不告诉你

    转跳点:

  2. vSphere HA 原理与配置

    内容预览: 1. vSphere HA 概述 2. vSphere HA 提供的保护级别 3. vSphere HA运行原理 4. vSphere HA 故障支持场景 5. vSphere HA接入控 ...

  3. Linux-Power-management

    1. 低级接口1.1 内核(swsusp)软件挂起1.1.1 睡眠状态的2个控制文件1.1.2 查看当前系统的睡眠控制文件内容1.1.3 状态表(表1)1.1.4 状态的使用1.2 uswsusp用户 ...

  4. ThinkCMF框架上的任意内容包含漏洞

    一.背景 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建. ThinkCMF提出灵活的应用机制,框架自身提供基础的管理功能,而开发者可以根据 ...

  5. Spring MVC RedirectAttributes取值方法

    RedirectAttributes是Spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的他有两种带参的方式:第一种: attr.addAttribute(" ...

  6. 使用Hibarnate: 出现 java.sql.SQLException: ORA-00911: 无效字符, 解决思路

    1. 查看到: Hibernat自动生成的sql查询语句 Hibernate: select * from ( select module0_.MODULE_ID as MODULE_ID1_1_, ...

  7. 前端学习(22)~css问题讲解

    你是如何理解 HTML 语义化的? 语义化:指对文本内容的结构化(内容语义化),选择合乎语义的标签(代码语义化). 举例:段落用 p,边栏用 aside,主要内容用 main 标签. 好处: 便于开发 ...

  8. pacificrack 控制面板登录不上的问题

    我今天又试了一下: https://master-stack01.pacificrack.com还是登不上(这个一键烦恼了我一个星期了,但是我今天百度出来了解决办法) 然后用这个就可以了  https ...

  9. Linux 安装gcc g++

    Linux版本: cat /proc/version Linux version 3.10.0-693.11.6.el7.x86_64 (mockbuild@x86-041.build.eng.bos ...

  10. ArrayList与LindedList区别

    1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList ...