[cf 1194 D] 1-2-K Game
(当时让这道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
[cf 1194 D] 1-2-K Game的更多相关文章
- CF 441E Valera and Number
CF 441E Description 一共执行\(k\)次,每次有\(p\%\)把\(x * 2\),有\((100 - p)\%\)把\(x + 1\).问二进制下\(x\)末尾期望\(0\)的个 ...
- 编辑IL文件 修改DLL文件
本文章只是技术探讨,学习,技术上的研究而已.请支持正版. 如:KS.Gantt.DLL 为例 使用ILSpy反编译 工具 利用ildasm反编译 KS.Gantt.dll 生成IL中间代码 一般会生 ...
- 编译安装rabbitmq服务端
有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装 总括: 需要以下步骤: 1.安装erlange.因为 ...
- xrdp的rdp前端无法连接Windows 2008的问题
xrdp使用rdp前端,无法连接2008,但连接2003是可以的.连接2008的时候,会在客户端发送Client Info PDU后主动RST掉连接.如下图 开始以为是客户端发送Client Info ...
- .NET中 类型,对象,线程栈,托管堆在运行时的关系
.NET中 类型,对象,线程栈,托管堆在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and T ...
- django模型操作
Django-Model操作数据库(增删改查.连表结构) 一.数据库操作 1.创建model表
- HTK计算mfcc/filter_bank源码解析
HTK计算mfcc/filter_bank源码解析 HTK可以用简单的 HCopy -C config -s scp 求取mfcc或者filter_bank 关于mfcc的原理在 http://my. ...
- Google pieCharts的学习
在公司项目开发过程中, 尤其是在网站的开发过程中,用到很多的前端的插件,在这里, 我简单介绍下近期Google pieCharts的是使用方法 https://developers.google.co ...
- 2018.11.6 PION 模拟赛
期望:100 + 40 + 50 = 190 实际:60 + 10 + 50 = 120 考得好炸啊!!T1数组开小了炸掉40,T2用 int 读入 long long ,int存储 long lon ...
随机推荐
- COCI 2015、2016 1st round 题解(官方)
官方题解: 官方代码: Code-KARTE: #include <cstdio> #include <iostream> #include <cstring> u ...
- 修改Docker容器启动配置参数
有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动, 现在要添加该参数怎么办呢,方法有二: 1.Docker 命令修改 docker c ...
- 关于conda和jupyter使用
conda建立虚拟环境 常用指令 conda env list # 查看环境 conda create -n env_name python=3.6.8 # 安装对应python的虚拟环境 conda ...
- [技术博客] 如何避免在代码中多重render
目录 问题发现 方案1 extracted_method and return(父函数and return法) 方案2 子函数yield,父函数调用后{return} 方案3 extracted_me ...
- 信息系统项目十大管理ITO
这是份关于信息系统项目管理师教程的内容提炼而成的电子文档,帮助所有备考信息系统管理师的考生准备,让大家快速记忆,助考加速.闲话少叙:直接上传我自己提炼的知识点.下图只是一部分,附件是所有内容.下载链接 ...
- unix udp sendto 最大可发送的数据长度
sendto 的最大可发送数据长度受限于两个值. 第一 [2^16 -1 - 8 -20] 第二 [SO_SNDBUF] 解释受限于[2^16-1-8-20] 数据封装过程 第一步: 用户层 : us ...
- postgre查询一段时间内的数据
select * from zaiko where createtime between (now() - interval '3 Days') and now() ; select * from z ...
- flask 运行 flask db init 报错,init-db 命令找不到
flask init-db 结果是 `Error: No such command “init-db”. 那是因为init-db 已经被 flask db init 给代替了 运行 flask db ...
- WebGL学习笔记(九):阴影
3D中实现实时阴影技术中比较常见的方式是阴影映射(Shadow Mapping),我们这里也以这种技术来实现实时阴影. 阴影映射背后的思路非常简单:我们先以光的位置为视角进行渲染,我们能看到的东西都将 ...
- 深入解读阿里云Redis开发规范
Key命名设计:可读性.可管理性.简介性 规范建议使用冒号即:进行分割拼接,因为很多Redis客户端是根据冒号分类的.比如有几个Key:apps:app:1.apps:app:2和apps:app:3 ...