P9586 游戏

思路

一定要注意看题啊,我就是因为没看到 该玩家可以出任意张杀和斩玩家也可以不出牌,直接进入对方的回合 导致赛时想了半天的特殊情况,头都快薅秃了。

因为一次可以出任意张杀和斩,所以当 \(c_1>d_2\) 或者 \(c_3>d_1\) 时,小 C 可以直接通过出杀和斩赢得游戏。

如果不行的话,小 C 一定保留杀,防止小 D 用斩杀死自己,并尽可能出斩,消耗小 D 的杀,防止被小 D 用杀杀死自己,所以当小 C 无法赢得游戏时,如果 \(d_1>c_2+c_3\) 或者 \(d_3>c_1\),那么小 D 可以赢得游戏。

如果小 D 此时还是无法赢得游戏,那么小 D 也会保留杀,尽可能出斩,防止被小 C 用杀或斩杀死自己,所以小 C 还是无法杀死小 D \(\cdots\)

所以后续就是平局。

AC code

#include<bits/stdc++.h>
using namespace std;
#define ok continue
int T,c1,c2,c3,d1,d2,d3;
int main()
{
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d%d%d%d%d",&c1,&c2,&c3,&d1,&d2,&d3);
		if(c1>d2||c3>d1){printf("C\n");continue;}
		if(d1>c2+c3||d3>c1){printf("D\n");continue;}
		printf("E\n");
	}
	return 0;
}
posted @ 2023-08-29 12:34  One_JuRuo  阅读(34)  评论(0编辑  收藏  举报