P4101 [HEOI2014]人人尽说江南好
题目描述
小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时候在江南玩过的一个游戏。
在过去,人们是要边玩游戏边填词的,比如这首《菩萨蛮》就是当年韦庄在玩游戏时填 的: 人 人 尽 说 江 南 好, 游 人 只 合 江 南 老。
然而我们今天不太关心人们填的词是什么,我们只关心小 Z 那时玩过的游戏。游戏的规 则是这样的,给定 N 堆石子,每堆石子一开始只有 1 个。小 Z 和他的小伙伴轮流操作, 小 Z 先行操作。操作可以将任意两堆石子合并成为一堆,当谁不再能操作的时候,谁就输掉了。
不过,当一堆石子堆的太高时可能发生危险,因此小 Z 和他的小伙伴规定,任何时刻任意一 堆石子的数量不能超过 m。即假如现在有两堆石子分别有 a 个和 b 个,而且 a+b>m,那么这 两堆石子就不能合成一堆。
小 Z 和他的小伙伴都是很聪明的,所以他们总是会选择对自己最有利的策略。现在小 Z 想要知道,在这种情况下,对于一个给定的 n 和 m,到底是谁能够获得胜利呢?
输入输出格式
输入格式:
本题包括多组数据 数据第一行为一个数 T,为数据组数 以下 T 行,每行两个正整数 n,m
输出格式:
输出 T 行,每行为 0 或 1,如果为 0 意为小 Z(即先手)会取得胜利,为 1 则为后手会 取得胜利。
输入输出样例
5
7 3
1 5
4 3
6 1
2 2
1
1
1
1
0
说明
对于 10%的数据, m>=n
对于 20%的数据, n,m<=10
对于 30%的数据, n,m<=50, 2*m>=n
对于 50%的数据, n,m<=100
对于 70%的数据, n,m<=1000000
对于 100%的数据, n,m<=1000000000, T<=100
Solution:
本题博弈论。
首先,合并次数最多为$n-1$,当$n\leq m$时答案直接由合并次数的奇偶判断,而当$n>m$时,最后只可能形成$\frac{n}{m}$个满的$m$堆和一个不满$m$的堆,每个$m$数量的堆合并次数为$m-1$次,而$n\%m$数量的堆合并次数为$n\%m-1$(注意当$n\%m==0$时就不需要合并了,也就不用减$1$),总合并次数为$\frac{n}{m}*(m-1)+n\%m-1+(n\%m==0)$,该式子可以将$n\%m$用$n-\frac{n}{m}*m$代换,最后次数化简得$n-\frac{n}{m}+(n\%m==0)-1$,那么答案就由最后合并次数的奇偶来判断即可。
代码:
/*Code by 520 -- 10.11*/
#include<bits/stdc++.h>
#define il inline
#define ll long long
#define RE register
#define For(i,a,b) for(RE int (i)=(a);(i)<=(b);(i)++)
#define Bor(i,a,b) for(RE int (i)=(b);(i)>=(a);(i)--)
using namespace std;
ll n,m; int main(){
ios::sync_with_stdio();
cin>>n;
while(cin>>n>>m) {
ll tp=n-n/m-+(n%m==);
puts(tp&?"":"");
}
return ;
}
P4101 [HEOI2014]人人尽说江南好的更多相关文章
- BZOJ 3609: [Heoi2014]人人尽说江南好
3609: [Heoi2014]人人尽说江南好 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 470 Solved: 336[Submit][Sta ...
- BZOJ3609 Heoi2014 人人尽说江南好【推理+结论】
BZOJ3609 Heoi2014 人人尽说江南好 Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时 ...
- bzoj3609 [Heoi2014]人人尽说江南好 博弈
[Heoi2014]人人尽说江南好 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 581 Solved: 420[Submit][Status][D ...
- [HEOI2014] 人人尽说江南好
[HEOI2014] 人人尽说江南好 题目大意:一个博弈游戏,地上\(n\)堆石子,每堆石子有\(1\)个,每次可以合并任意两个石子堆\(a,b\),要求\(a + b \leq m\),问先手赢还是 ...
- [BZOJ3609][Heoi2014]人人尽说江南好 结论题
Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏. 在过去,人们是要 ...
- bzoj3609 [Heoi2014]人人尽说江南好
Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时候在江南玩过的一个游戏. 在过去,人们是要边玩 ...
- luoguP4101 [HEOI2014]人人尽说江南好 结论
题目大意: 给定\(n\)堆初始大小为\(1\)的石堆 每次选择两堆石子合并,特别的,合并之后的两堆石子不能\(> m\) 询问先手必赢? 不妨设我们是先手,且最后我们必胜 我们考虑构造局面\( ...
- [HEOI2014]人人尽说江南好 博弈论
题面 题面 题解 感觉这题挺神仙的,根据一些奇奇怪怪的证明可以得到: 最后的终止状态一定是\(m, m, m, m, .... n \% m\). 因此我们可以O(1)计算到终止状态所需步数,然后根据 ...
- BZOJ3609 [Heoi2014]人人尽说江南好 【博弈】
题目链接 BZOJ3609 题解 我们假设最后合成若干个\(m\),和\(n \mod m\),此时合成次数是最多的,也唯一确定胜利者 可以发现,在轮流操作的情况下,胜利者一定可以将终态变为这个状态 ...
随机推荐
- Eclipse启动Tomcat错误:Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already
Eclipse启动Tomcat错误: Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are alread ...
- POJ2251-Dungeon Master(3维BFS)
You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of un ...
- 回顾下TCP/IP协议
首先要知道什么是TCP/IP协议,从字面意思来看TCP是“Transmission Control Protocol”的缩写,也就是传输控制协议.IP是“Internet Protocol”的缩写,即 ...
- ossec兼容的操作系统
OSSEC兼容以下操作系统和日志格式 操作系统 以下操作系统可安装OSSEC代理 l GNU/Linux (all distributions, including RHEL, Ubuntu, Sl ...
- nice和renice命令详解
基础命令学习目录首页 进程调度是linux中非常重要的概念.linux内核有一套高效复杂的调度机制,能使效率极大化,但有时为了实现特定的要求,需要一定的人工干预.比如,你希望操作系统能分配更多的CPU ...
- cnblogs用户体验评价
1. 是否提供良好的体验给用户(同时提供价值)? 博客园就相当于现在生活中处处可见的微博,所有人都在上面发表自己的一些看法,当然我们比较关注的是计算机编程方面的一些博客,大多数编程人员愿意分享自己的代 ...
- Leetcode题库——34.在排序数组中国查找元素的第一个和最后一个位置
@author: ZZQ @software: PyCharm @file: searchRange.py @time: 2018/11/12 19:19 要求:给定一个按照升序排列的整数数组 num ...
- MAVEN ERROR maven-resources-plugin
maven新建项目时报错 Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin: ...
- DFS--障碍在指定时间会消失
哈利被困在了一个魔法花园里.魔法花园是一个 N*M 的矩形,在其中有着许多植物, 这些植物会在时刻 K 的倍数消失. 哈利每单位时间都会选择上.下.左.右四 个方向的其中一个进行移动. #includ ...
- 灵悟礼品网上专卖店Sprint计划
一.现状 小组成员初步了解了所做项目的大致内容,需要时间一步一步分析和规划. 二.部分需求索引卡 第一个阶段没有具体功能的实现,只是先把所要做的项目思路理清,并把相应的数据库建立好. 三.任务认领 产 ...