【题解】P9586 题解

P9586 题解

被除名的验题人题解。

思路分析

模拟。

首先,如果小 C 的斩的数量大于小 D 的杀的数量,又或者小 C 的杀的数量大于小 D 的闪的数量,显然小 C 赢。

如果小 D 的斩的数量大于小 C 的杀的数量,显然小 D 赢。

但是如果小 D 的杀的数量大于小 C 的闪的数量,小 D 还不一定能赢。

因小 C 采用最优策略,那肯定是优先把对方的杀给消耗完,不然对自己有威胁。(因为杀有攻击性,而闪没有)

而小 C 只能靠斩来消耗对方的杀。所以,只有当小 D 的杀的数量减去小 C 斩的数量大于小 C 闪的数量时,小 D 才能赢。

如果谁都没赢,显然平局。

代码

#include <iostream>

int main()
{
	int T;
	cin >> T;
	while(T--)
	{
		int c1, c2, c3, d1, d2, d3;
		cin >> c1 >> c2 >> c3 >> d1 >> d2 >> d3;
		if(c3 > d1 || c1 > d2)
		{
			cout << "C" << endl;
			continue; 
		}
		if(d3 > c1)
		{
			cout << "D" << endl;
			continue;
		}
		d1 -= c3;
		if(d1 > c2)
		{
			cout << "D" << endl;
			continue;
		}
		cout << "E" << endl;
	}
    return 0;
}
posted @ 2023-08-28 10:52  邻补角-SSA  阅读(8)  评论(0)    收藏  举报  来源