学习打卡-真-第16天(补发) 炉石yyds

以后一周的博客只能一天发了
平时上班忙
真没时间写这个
这周开始写排序了
上次竞赛有个桶排的题就没做
唉~
所以加强练习一下
每天就瞎水题emmm
看到一个炉石的题
感觉还不错
对我这个菜鸡来说也挺难的
就放在这里了

题目描述
Yumis最近在玩炉石传说。

在炉石传说中脏牧有一张一费卡片(一费就是使用要消耗1点法力水晶),叫做疯狂药水,这个的效果是将一个敌方场上攻击小于等于2的随从拉到自己的战场内。

还有一张四费卡片叫做暗影狂乱,这个的效果是将一个敌方场上攻击小于等于3的随从拉到自己的战场内。

还有一张一费卡片就是缩小药水,这个的效果是将敌人全场的随从攻击力下降3点。

你PY了炉石的GM所以你有了无数张的这三种卡片,但是GM告诉你缩小药水是这个牌比较不好创建,为了为GM着想你必须在使用最少的缩小药水的情况下A爆对手的脸。

现在你的对手场上有n个随从,每个随从的攻击力是ki点。

你的对手有m点血量。

而你现在要做的就是将敌方的场上的随从拉过来自己的场上并攻击对手(每一个随从只能攻击一次,攻击力为你拉过来的时候随从剩余的攻击力),A爆对面的脸(将对面的血打到0点及以下)。

输入格式
第一行用一个空格隔开的两个整数n,m分别代表敌方场上的随从数量和你对手的血量。

第二行n个整数每两个整数之间用一个空格隔开,分别代表敌方场上每一个随从的攻击力ki。

输出格式
一行如果可以A爆则输出最少使用的缩小药水的数量和此时使用的法力水晶,两个数据之间用一个空格隔开(如果有多个答案则输出消耗法力水晶最少的答案)。

否则输出“Human Cannot Win Dog”(没有双引号)
样例说明1:

敌方场上有3只随从,敌方有5点血量

我们把3攻随从和2攻随从拉过来花费0个缩小药水和5点耗费(一张疯狂药水一个暗影狂乱(1+4 = 5))伤害足够击杀对方。

样例说明2:

使用16个缩小药水(下面数据后面第一个括号指拉过来的时候伤害为多高 ,第二个括号表示拉过来的时候使用多少的缩小药水)

拿10(1)(3)、20(2)(6)、30(3)(9)、50(2)(16)攻的怪物总共造成8点伤害 刚好A爆!

Easy : 保证 0 < n <= 10 并且不存在用到暗影狂乱和缩小药水的情况 20%

Normal :保证 0 < n <= 10 并且不存在用到缩小药水的情况 20%

Hard :保证 0 < n <= 10 30%

Extra:保证0 <= n <= 5000000(6个0),最大攻击力小于30000 30%

保证 0 < n <= 5000000 0 < ki <=30000 0<=m<=5000000 (6个0)
原题链接:https://www.luogu.com.cn/problem/P3944
纪念一下我玩过的游戏
下面就是我的代码啦
不太简略
凑活着看吧(doge)

#include<bits/stdc++.h>
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
using namespace std;
int a[30005],used[5],maxn=-100,sum=0,ans=0,cnt=0;
const int cost[5]=
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值