Paint Chain HDU - 3980
题目链接:https://vjudge.net/problem/HDU-3980
题意:由n个石头组成的环,每次只能取连续的M个,最后不能取得人输。
思路:这样就可以先把它变成链,然后在链上枚举取m个连续点,每次都可以将这条链分成两部分,相当于两个子游戏。对于一个链,一共有n-m-i个子游戏对,用vis数组标记好这些子游戏对的异或值,最后就可以找出sg[n]。
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 int sg[1010],vis[1010];
5 int n,m;
6 void getsg(int len)
7 {
8 memset(sg,0,sizeof sg);
9 for(int i=1;i<=len;i++)
10 {
11 memset(vis,0,sizeof vis);
12 for(int j=0;i-j-m>=0;j++)
13 {
14 vis[sg[i-j-m]^sg[j]]=1;
15 }
16 for(int j=0;;j++)
17 {
18 if(!vis[j])
19 {
20 sg[i]=j;
21 break;
22 }
23 }
24 }
25 }
26 int main()
27 {
28 int t,k=0;
29 cin>>t;
30 while(t--)
31 {
32 cin>>n>>m;
33 printf("Case #%d: ",++k);
34 getsg(n-m);
35 if(n<m||sg[n-m]) puts("abcdxyzk");
36 else puts("aekdycoin");
37 }
38 return 0;
39 }
Paint Chain HDU - 3980的更多相关文章
- Paint Chain HDU - 3980(sg)
因为题中是个环, 所以我们可以首先拿出一组m 如果n<m 先手必输 否则的话跑sg函数 n = n-m #include <iostream> #include <cstdio ...
- HDU 3980 Paint Chain (sg函数)
Paint Chain Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU 3970 Paint Chain (博弈,SG函数)
Paint Chain Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- hdu 3980 Paint Chain sg函数
题目链接 给一个长度为n的环, 两个人轮流涂色, 每次涂m个连续的, 无法继续涂了就输. #include<bits/stdc++.h> using namespace std; #def ...
- HDU - 3980 Paint Chain(SG函数)
https://vjudge.net/problem/HDU-3980 题意 一串长度为n的柱子,每个人只能给连续的珠子涂色,涂过的不能再涂,不能涂的人就输了,问最后谁获胜. 分析 第一个人先涂m个, ...
- hdu 3980 Paint Chain 组合游戏 SG函数
题目链接 题意 有一个\(n\)个珠子的环,两人轮流给环上的珠子涂色.规定每次涂色必须涂连续的\(m\)颗珠子,无法继续操作的人输.问先手能否赢. 思路 参考 转化 第一个人取完之后就变成了一条链,现 ...
- AC日记——Paint Pearls hdu 5009
Paint Pearls 思路: 离散化+dp+剪枝: dp是个n方的做法: 重要就在剪枝: 如果一个长度为n的区间,有大于根号n种颜色,还不如一个一个涂: 来,上代码: #include <c ...
- HDU 3980 (SG 环变成链 之前的先手变成后手)
题意 两个人在一个由 n 个玻璃珠组成的一个圆环上玩涂色游戏,游戏的规则是: 1.每人一轮,每轮选择一个长度为 m 的连续的.没有涂过色的玻璃珠串涂色 2.不能涂色的那个人输掉游戏 Aekdycoin ...
- ACM 第十二天
博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈,SG函数,SG定理) 一. 巴什博奕(Bash Game): A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30.这应该是最古老的关 ...
随机推荐
- Androidstudio 新GradlePlugin和Gradle Version对应关系
Project Gradle AS建议升级到4.2. Plugin对应AS的版本,Plugin工具也要和Gradle对应上,否则某些语法不支持,如果是非必要的建议不要轻易升级. Gradle DSL ...
- web cache & web storage all in one
web cache & web storage all in one web cache in action web cache best practices web storage in a ...
- npm published cli package's default install missing the `-g` flag
npm published cli package's default install missing the -g flag https://npm.community/t/npm-publishe ...
- css border-radius & yin-yang & taiji
css border-radius & yin-yang & taiji solution css border-radius & tabs effect https://co ...
- SameSite cookies explained
SameSite cookies explained
- emplace_back与push_back
资料参考: https://blog.csdn.net/p942005405/article/details/84764104 实际精华在评论中,转载如下: STL的实现版本很多,VS.GCC版本不同 ...
- 物联网网关开发:基于MQTT消息总线的设计过程(上)
道哥的第 021 篇原创 目录 一.前言 二.网关的作用 2.1 指令转发 2.2 外网通信 2.3 协议转换 2.4 设备管理 2.5 边沿计算(自动化控制) 三.网关内部进程之间的通信 3.1 网 ...
- Linux常用小命令
1:查看当前磁盘内存 df-ah/df-hl 2:查看文件和文件夹大小 du -h --max-depth=1 /目的文件夹 3:scp 拷贝命令 指定端口传输文件 scp -p port filen ...
- Ctf_show Web[1-8]
CTFshow_web1: F12查看JS即在代码里 CTFshow_web2: 进入网址后页面如下: ①:尝试使用admin登陆,发现页面无回显 ②:尝试单引号闭合,并且添加' or 1=1#,此时 ...
- Java基础自学小项目
实现一个基于文本界面的<家庭记账软件> 需求:能够记录家庭的收入,支出,并能够收支明细表 主要涉及一下知识点: - 局部变量和基本数据类型 - 循环语句 - 分支语句 - 方法调用和返回值 ...