CF1673A的题解

好久没做CF的水题了

由于每一个人都以最佳策略进行游戏且Alice先手。

设字符串长度为 |s|

我们可以考虑:

  1. |s| 为偶数,此时Alice可以直接全部取走,不给Bob任何机会 (人心险恶啊)

  2. |s| 为奇数,此时Alice最多取 |s|1 个字符,也就剩下头和尾。

    对比头和尾,哪一个大就取哪一个。

注意:

如果长度为 1 的话,因为Alice只能取偶数长度的字串,所以取走的长度为 0。这时候,Bob必胜。

特别的,因为Alice先手且使用最佳策略,所以除了长度为 1 的情况,Alice必胜。

(突然觉得Bob好惨

code

#include<cstdio>
#include<cstring>
int t;
char s[200010];
int len;
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%s",s+1);
		len=strlen(s+1);
		if(len==1)
			printf("Bob %d\n",s[1]-'a'+1);
		else
		{
			if(len%2==0)
			{
				int sum=0;
				for(int i=1;i<=len;i++)
					sum+=s[i]-'a'+1;
				printf("Alice %d\n",sum);
			}
			else
			{
				int sum=0;
				if(s[1]>s[len])
				{
					for(int i=1;i<=len-1;i++) sum+=s[i]-'a'+1;
					sum-=(s[len]-'a'+1);
				}
				else
				{
					for(int i=2;i<=len;i++) sum+=s[i]-'a'+1;
					sum-=(s[1]-'a'+1);
				}
				printf("Alice %d\n",sum);
			}
		}
	}
	return 0;
}
posted @   osfly  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示