[CF276B]

Description

给定字符串 \(S\) ,两人轮流,每次从字符串中任意取出一个字符并从原串中删去。如果某人某次操作前,串种剩余的字符集合经过排列可以得到回文串,那么这个人就胜利。求胜负。

Solution

显然这个字符串可以看成一个字母多重集合。那么我们统计出每种字符出现的次数。考虑有多少种字母出现次数为奇数次,记为 \(m\) 。如果 \(m \le 1\) ,那么先手胜利。

\(k=2\) 时,先手可以将将一个奇数次转化为偶数次,那么后手胜利;先手也可以将一个偶数次转化为奇数次,假如可以进行这样的操作,那么后手将这个新转化的奇数次转化为偶数次,局面回归到与开局等价的状态,直到某个时刻先手不能再制造出新的奇数次,此时必然后手胜。

\(k=3\) 时,先手先将一个奇数次转为偶数次,这样就转化到了 \(k=2\) 的状态,先后手状态偏移,于是先手胜利。

\(k=4\) 时,先手可以先将一个奇数次转化为偶数次,那么这时候转化为 \(k=3\) 故后手胜利;先手也可以先将一个奇数次转化为偶数次,然后仿照 \(k=2\) 情况进行后续,到某个时刻先手不能再制造出新的奇数次,此时必然后手胜。

同理可得后续情况。

#include <bits/stdc++.h>
using namespace std; string str;
int a[205],m; int main()
{
ios::sync_with_stdio(false);
cin>>str;
for(int i=0;i<str.length();i++)
{
a[str[i]]++;
}
for(int i='a';i<='z';i++)
{
if(a[i]&1) ++m;
}
if(m<=1) cout<<"First"<<endl;
else cout<<(m&1?"First":"Second")<<endl;
}

[CF276B] Little Girl and Game的更多相关文章

随机推荐

  1. 【redis】spring boot利用redis的Keyspace Notifications实现消息通知

    前言 需求:当redis中的某个key失效的时候,把失效时的value写入数据库. github: https://github.com/vergilyn/RedisSamples 1.修改redis ...

  2. P3853 [TJOI2007]路标设置(二分答案)

    -------------------------------- 二分答案的典型题 --------------------------------- 注意一下check和输出就行 --------- ...

  3. H5测试方法

    一 功能测试 1 关注页面请求:请求数据是否正确,相应是否正确,是否有重复请求,造成流量浪费,响应速度变慢 2 关注application cache:cokkie值是否正确,清除cokkie后表现是 ...

  4. Vue如何动态配置img标签的图片源src

    (一)首先通过绑定数据给src提供图片地址 <template> <div> <img :src=image_path /> </div> </t ...

  5. Mac上的屏幕截图不起作用该如何修复?

    屏幕截图是Mac提供的内置功能,很少有它不起作用.但是由于某些意外的设置或硬件问题,Mac上的屏幕截图有时无法正常工作,这里提供的是Mac上的屏幕截图不起作用该如何修复? 1.在Mac上启用屏幕快照快 ...

  6. 监听Ueditor的 iframe中的按键,按键组合事件(Ctrl+s)

    个人博客 地址:https://www.wenhaofan.com/a/20190716214214 监听按键事件 ueditor.ready(function() {     UE.dom.domU ...

  7. linux 文件系统管理三部曲之一:磁盘分区

    硬盘和主板的连接的地方:叫接口,硬盘的接口类型: iops:i/o per second:每秒的读写次数. IDE(ata):并口(数据并行传输),理论最大传输 133MB/S:iops:100次 S ...

  8. 控制input中只能输入固定格式内容

    onkeyup 事件会在键盘按键被松开时发生,onafterpaste 是粘贴触发,没有这个事件用onblur吧,失去焦点时发生输入完,点其他地方就会执行. <html lang="e ...

  9. LeetCode 160. 相交链表 (找出两个链表的公共结点)

    题目链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/ 编写一个程序,找到两个单链表相交的起始节点. 如下面的两 ...

  10. FHQTreap刷题记录

    分裂:如图,按值分裂,u比k大则切黄色的一