[CF276B] Little Girl and Game
[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的更多相关文章
随机推荐
- MySQL char与varchar 的区别
一.差异 1.占用存储空间上 char 初始化时占固定空间,varchar依据插入内容大小使用空间. 2.char最大字符长度255个(约0.1KB),varchar则是65535(约192KB). ...
- WinForm WebBrowser 设置IE版本
public enum IeVersion { IE7 = , IE8 = , IE9 = , IE10 = , IE11 = }; /// <summary> /// 修改注册表信息来兼 ...
- 轻量级RPC设计与实现第三版
在前两个版本中,每次发起请求一次就新建一个netty的channel连接,如果在高并发情况下就会造成资源的浪费,这时实现异步请求就十分重要,当有多个请求线程时,需要设计一个线程池来进行管理.除此之外, ...
- Vue(三)--循环语句
v-for: v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名. demo1. <!DOCTYPE html&g ...
- windows密码抓取工具-mimikatz
前言 介绍一下windows的密码hash值的组成: Windows系统下的hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值,例如: Administrator::C8825D ...
- EOFError: Compressed file ended before the end-of-stream marker was reached解决办法(在Windows下查看已下载的MNIST数据文件)
出现这个问题的原因是因为文件下载到一半就中断了,解决办法是删除datasets中下载到一半的数据包. 下面以我遇到的问题为例: 我下载数据下载到最后一个包就没有反应了,于是我强制终止了运行,可能是因为 ...
- SAP 登录Fiori的user和登录WEB UI的business role之间的关系。
SAP 登录FIORI的user 会被assign 一些控制前端app显示的business role(是一些PFCG role的集合),该business role和登录web ui选择的S4C_S ...
- PDF体检报告
//Title: 个人健康管理分析报告 using System; using System.Collections.Generic; using System.Linq; using System. ...
- 在java中调用mockjs生成模拟数据
一.手写版 在前端有个模拟数据的神器 Mock.js 能生成随机数据,拦截 Ajax 请求,然后我觉得他的这个生成随机数据不错.然后我就到度娘一顿操作,没找到类似的java实现,于是就有了下面的代码: ...
- Bootstrap 警告框(Alert)插件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...