题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1847

思路:求出sg函数,也可以看做巴什博奕,是3的倍数就好,因为先手取不到3的倍数,而后手只需要让它重新变回3的倍数就行。

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <bitset>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <sstream>
#include <iomanip>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const ll inff = 0x3f3f3f3f3f3f3f3f;
#define FOR(i,a,b) for(int i(a);i<=(b);++i)
#define FOL(i,a,b) for(int i(a);i>=(b);--i)
#define REW(a,b) memset(a,b,sizeof(a))
#define inf int(0x3f3f3f3f)
#define si(a) scanf("%d",&a)
#define sl(a) scanf("%I64d",&a)
#define sd(a) scanf("%lf",&a)
#define ss(a) scanf("%s",a)
#define mod int(1e9+7)
#define pb push_back
#define lc (d<<1)
#define Pll pair<ll,ll>
#define P pair<int,int>
#define pi acos(-1)
int sg[1008],vis[1008],f[1048],pos=1,n;
void get_sg()
{REW(sg,0);FOR(i,1,1000){REW(vis,0);for(int j=1;f[j]<=i;j++) vis[sg[i-f[j]]]=1;        FOR(j,0,1000){if(!vis[j]) {sg[i]=j;break;}}}
}
int main()
{cin.tie(0);cout.tie(0);for(int i=1;i<=1024;i*=2)  f[pos++]=i;get_sg();while(cin>>n){if(!sg[n])  cout<<"Cici"<<endl;else  cout<<"Kiki"<<endl;}return 0;
}

SG函数(hdu1847)相关推荐

  1. HDU1847 Good Luck in CET-4 Everybody!【SG函数】

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...

  2. hdu1847(SG函数)

    Good Luck in CET-4 Everybody! 大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此.当然,作 ...

  3. hdu1847-Good Luck in CET-4 Everybody! (博弈论 SG函数 找规律)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  4. Trie树合并 + SG函数 ---- BZOJ4730. Alice和Bob又在玩游戏(动态开点Trie 树上全局异或标记 + 合并 + 博弈论)

    题目大题 题目大意: 解题思路: 首先我们对于子树u的SG函数为SG函数为SG函数为 ⨁是异或和\bigoplus是异或和⨁是异或和 SG[u]=mex{⨁w∈(w的父亲在u到v的路径上)SG[w]∣ ...

  5. 点分治问题 ----------- P3727 曼哈顿计划E[点分治+博弈SG函数打表找规律]

    题目链接 解题思路: 1.首先对于每个操作我们实际上是一个博弈问题 对于k=1的操作就是很基础的NIM游戏就是找到一条链的异或和为0 对于k=2的操作通过达打表找规律: 如果s是奇数那么偶数的SG函数 ...

  6. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)

    Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 871  Solved: 365 [Submit][Status][Discuss] Descripti ...

  7. 一类SG函数递推性质的深入分析——2018ACM陕西邀请赛H题

    题目描述 定义一种有根二叉树\(T(n)\)如下: (1)\(T(1)\)是一条长度为\(p\)的链: (2)\(T(2)\)是一条长度为\(q\)的链: (3)\(T(i)\)是一棵二叉树,它的左子 ...

  8. hdu1848(sg函数打表)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848 题意:中文题诶- 思路:直接sg函数打表就好了 代码: 1 #include <iostr ...

  9. AtCoder AGC043C Giant Graph (图论、SG函数、FWT)

    题目链接 https://atcoder.jp/contests/agc043/tasks/agc043_c 题解 场上感觉没啥思路就放弃了,场下想了十几分钟发现是水题,血亏...(只能怪自己计数水平 ...

  10. (转)博弈问题与SG函数

    博弈问题 若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需 ...

最新文章

  1. NLP模型压缩六大方法介绍
  2. jquery $(document).ready() 与window.onload的区别
  3. 指定的文件不是虚拟磁盘 没有快照_vmware workstaiton 15 虚拟机克隆(4)
  4. openfire php注册,openfire php 初始配置
  5. 经典排序算法(Java版)
  6. zTree加Layui 实现增加和删除,有子节点不允许删除
  7. C++之指针探究(五):数组指针和二维数组
  8. Linux 局域网路由新手指南:第 2 部分
  9. c++ 拷贝构造函数 讲解
  10. UVALive 7077 Little Zu Chongzhi's Triangles (有序序列和三角形的关系)
  11. myeclipse优化方案 myeclipse 10 优化
  12. Atitit osi tcp ip 对应attilax总结
  13. 软件测试和初级会计哪个简单,2018年初级会计app刷题哪个好?
  14. Java程序员年薪40W是什么水平?税前还是税后?
  15. SECS/GSM 测试工具
  16. xyz坐标转换ybc_GNSS仰角和方位角的计算及代码,XYZ转BLH坐标的代码及原理
  17. 如何在水经注微图中加载地形地貌图进行道路设计
  18. mysql .ibd_MySQL单表ibd文件恢复方法详解
  19. 学习linux的第一天知识总结
  20. TL-R473P-AC【搭配面板式AP组网设置方法】

热门文章

  1. win10专业版没有触摸板选项_win10没有显示触摸板
  2. BXP多分区的正确的操作步骤(转)
  3. 用Unity写设计模式-外观模式
  4. 8款流行前沿的HTML5文本编辑器
  5. sendkeys安装包_利用Windows命令行解压zip压缩文件(不借助第三方软件)
  6. 场景文字检测——CTPN模型介绍及代码实现
  7. Unity3D 游戏资源提取工具
  8. Python3 字节码详解
  9. html给图片加文字,如何给图片加上字
  10. 全国大学生数学建模竞赛(CUMCM)历年试题(查看超级方便)