(当时让这道sb题卡住了,我比sb还sb)

题意:

n个东西,两个人轮流取,每次可以取走1个,2个或k个,不能取的人输,求谁必胜。

$0\leq n \leq 10^{9},3\leq k \leq 10^{9}$

题解:

假如没有这个$k$,显然如果$n$是3的倍数则后手赢,否则先手赢。

操作方法就是某一个人永远保证$n\equiv 0(mod 3)$

那么这个题的思考方式就是:

  • 若$k\equiv 0(mod 3)$,推一下SG函数,容易发现它有一个长度为$(k+1)$的循环节,于是$mod(k+1)$后按SG值判断即可。
  • 否则,这个$k$的作用跟1或2一样,取不取$k$不影响必胜情况,按原来的方法判断即可。

代码:

#include<bits/stdc++.h>
#define maxn 100005
#define maxm 500005
#define inf 0x7fffffff
#define ll long long using namespace std;
int N,K; inline int read(){
int x=,f=; char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-;
for(;isdigit(c);c=getchar()) x=x*+c-'';
return x*f;
} int main(){
int T=read();
while(T--){
N=read(),K=read();
if(K%==) N%=(K+);
if((N+)%== && N!=K) printf("Bob\n");
else printf("Alice\n");
}
return ;
}

1-2-K Game

最新文章

  1. ICollection
  2. Bellovin_树状数组
  3. Can't initialize metastore for hive
  4. 将js对象转为json对象属性加上引号
  5. python 接口测试 、提交数据
  6. KMP算法求next数组
  7. RChain的Casper共识算法
  8. CentOS7使用firewalld防火墙配置端口
  9. python 对excel操作用法详解
  10. [nodejs] nodejs开发个人博客(一)准备工作
  11. Java基础方法整理
  12. django之normalize函数的功能
  13. package.json版本号
  14. 基于hiredis,redis C客户端封装
  15. mysql多列索引
  16. 洛谷 P3916 【图的遍历】反向加边+dfs
  17. modbus.c
  18. ViewPager自定义选项卡
  19. Hive学习之数据去重
  20. Graph-684. Redundant Connection

热门文章

  1. Spring中静态方法中使用@Resource注解的变量
  2. GSEA 基因集富集分析
  3. 源码编译Redis Desktop Manager ---(转载)
  4. IIS调优--增加并发处理能力
  5. 003 docker安装nginx
  6. 目前流行前端几大UI框架排行榜
  7. 使用 Laravel 自带的用户系统 包括登录注册功能以及错误处理
  8. git冲突处理-Please move or remove them before you can merge
  9. 【Vegas原创】MAC电脑升级系统无法开机的终极解决办法
  10. PV、TPS、QPS是怎么计算出来的?(转载的)