「CF1463A」暗黑地牢

Posted 幻与空_cqbz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「CF1463A」暗黑地牢相关的知识,希望对你有一定的参考价值。

暗黑地牢

内存限制:256 MB 时间限制:1000 ms

题目描述

现在,你正在玩一款名为暗黑地牢的电脑游戏,在这款游戏当中,你需要击败地牢中的所有怪兽来获得游戏的胜利。

进行到游戏的最后,在你的面前一共只剩下三只怪兽,第一只怪兽有点血,第二只怪兽有点血,第三只怪兽有点血。

为了击败这三只怪兽,你掏出了兜里的魔法手枪,这支手枪每次能对一只怪兽造成一点伤害,但是,当你每进行七次射击时(即第7、14、21、次射击),你可以发动手枪的魔法,对所有的怪兽造成1点伤害。当然,每只怪兽的血量最少只会减少至0。

现在,你为了让游戏结束得更加漂亮,你希望用一颗魔法子弹击倒所有的怪兽结束这个游戏(即你需要发动手枪的魔法,用一次射击让所有的怪兽血量第一次减少至0)。

现在,你需要判断,依据目前的形式,你能否漂亮的结束游戏。

接下来,你需要回答  个问题。

输入格式

第一行输入一个数字,表示需要回答的问题数量

接下来,对于每个问题,输入三个数字,分别表示三只怪兽的血量。

输出格式

对于这次游戏,如果能够漂亮的结束,输出"YES",否则,输出"NO"。

 样例输入

3
3 2 4
1 1 1
10 1 7

 样例输出

YES
NO
NO

思路

这道题看似很难,其实很简单

这道题看似简单,其实非常难

所以我到底说了个啥

其实这道题挺简单,首先可以从题目中得知的是每七次射击,总共会对怪兽造成6 + 3 = 9点伤害

所以,想要漂亮的结束游戏,三只怪兽的血量必须是9的倍数

其次,怪兽的血量不能少于魔法子弹的发射次数,否则怪兽的血量就会小于0  游戏BUG

 代码

#include <bits/stdc++.h>
using namespace std;

long long t, a, b, c, tot, minn; // 为了防止溢出,所以将变量定义成long long型

int main() {

	cin >> t;

	for (int i = 0; i < t; i++) {

		cin >> a >> b >> c;

        tot = a + b + c; // 怪兽血量和

		minn = min(min(a, b), c); // 求最少的怪兽血量

        if (minn < tot / 9 or tot % 9 != 0) { // 如果不满足上述条件,则输出NO
            cout << "NO" << endl;
        } else {
            cout << "YES" << endl;//否则输出YES
        }
	}

	return 0;
}

配合代码了解思路即可!

尽量不要Ctrl + C!

以上是关于「CF1463A」暗黑地牢的主要内容,如果未能解决你的问题,请参考以下文章

暗黑2重置版闪退怎么处理?

codecombat之边远地区的森林1-11关及地牢38关代码分享

SpriteKit游戏Delve随机生成地牢地图一个Bug的修复

网易极客战记官方攻略-地牢-健忘的宝石匠

网易极客战记官方攻略-地牢-注释中的密语

网易极客战记官方攻略-地牢-敌人的陷阱