BZOJ 4147: [AMPPZ2014]Euclidean Nim (分类讨论博弈神题)
orz PoPoQQQ神犇,每一篇题解都写得很清楚
(看了PoPoQQQ的哲♂学三部曲,瑟瑟发抖)

CODE
#include <cstdio>
#include <algorithm>
using namespace std;
#define stop(x) return puts(x), 0
inline void read(int &num) {
	char ch; while((ch=getchar())<'0'||ch>'9');
	for(num=0;ch>='0'&&ch<='9';num=num*10+ch-'0',ch=getchar());
}
bool chk(int p, int q, int n) {
	return (n % p < q) && (n % p % (p-q) == 0);
}
int p, q, n, T;
inline int solve () {
	read(p), read(q), read(n);
	int tmp = __gcd(p, q);
	if(n % tmp) stop("R");
	if(p == q) stop("E");
	p/=tmp, q/=tmp, n/=tmp;
	if(p > q) {
		if(n < p) stop("P");
		else stop(chk(p, q, n) ? "E" : "P");
	}
	else {
		if(n < p) {
			if(n+p < q) stop("E");
			else stop(chk(q, p, n+p) ? "P" : "E");
		}
		else stop("E");
	}
}
int main () {
	read(T);
	while(T--) solve();
}
												
											BZOJ 4147: [AMPPZ2014]Euclidean Nim (分类讨论博弈神题)的更多相关文章
- Bzoj 4147: [AMPPZ2014]Euclidean Nim(博弈)
		
4147: [AMPPZ2014]Euclidean Nim Time Limit: 1 Sec Memory Limit: 256 MB Description Euclid和Pythagoras在 ...
 - 【BZOJ】4147: [AMPPZ2014]Euclidean Nim
		
[算法]博弈论+数论 [题意]给定n个石子,两人轮流操作,规则如下: 轮到先手操作时:若石子数<p添加p个石子,否则拿走p的倍数个石子.记为属性p. 轮到后手操作时:若石子数<q添加q个石 ...
 - hdu 3232 Crossing Rivers(期望 + 数学推导 + 分类讨论,水题不水)
		
Problem Description You live in a village but work in another village. You decided to follow the s ...
 - BZOJ 2553 AC自动机+矩阵快速幂 (神题)
		
思路: 我们先对所有读进来的T建一个AC自动机 因为走到一个禁忌串就需要回到根 所以呢 搞出来所有的结束点 或一下 fail指针指向的那个点 然后我们就想转移 a[i][j]表示从i节点转移到j节点的 ...
 - BZOJ 4408: [Fjoi 2016]神秘数 主席树 + 神题
		
Code: #include<bits/stdc++.h> #define lson ls[x] #define mid ((l+r)>>1) #define rson rs[ ...
 - BZOJ 1067 降雨量(RMQ-ST+有毒的分类讨论)
		
1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 4399 Solved: 1182 [Submit][Stat ...
 - 枚举(分类讨论):BZOJ 1177: [Apio2009]Oil
		
1177: [Apio2009]Oil Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1477 Solved: 589[Submit] Descri ...
 - bzoj 3779 重组病毒 好题 LCT+dfn序+线段树分类讨论
		
题目大意 1.将x到当前根路径上的所有点染成一种新的颜色: 2.将x到当前根路径上的所有点染成一种新的颜色,并且把这个点设为新的根: 3.查询以x为根的子树中所有点权值的平均值. 分析 原题codec ...
 - Codeforces 460D Little Victor and Set --分类讨论+构造
		
题意:从区间[L,R]中选取不多于k个数,使这些数异或和尽量小,输出最小异或和以及选取的那些数. 解法:分类讨论. 设选取k个数. 1. k=4的时候如果区间长度>=4且L是偶数,那么可以构造四 ...
 
随机推荐
- PTA(Advanced Level)1067.Sort with Swap(0, i)
			
Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy to sort them in increasing order ...
 - Windows远程连接server(Linux系统)及可视化
			
方法1:命令行连接后使用server上安装好的可视化编辑器IDE: Step 1: 工具准备:putty.exe:Xming-6-9-0-31-setup.exe:Xming-fonts-7-7-0- ...
 - libtool
			
[从网上摘录的,忘了从哪摘的了] libtool常见于autoconf/automake,单独用的例子很少,所以我想仔细研究一下,为将来兄弟们看起来方便. 一.libtool的作用offer a ...
 - AtCoder AISing Programming Contest 2019 Task D. Nearest Card Game
			
题目分析在代码注释里. int main() { #if defined LOCAL && !defined DUIPAI ifstream in("main.in" ...
 - __formart__
			
__format__ 一.__format__ 自定制格式化字符串 date_dic = { 'ymd': '{0.year}:{0.month}:{0.day}', 'dmy': '{0.day}/ ...
 - 使用python django快速搭建微信公众号后台
			
前言 使用python语言,django web框架,以及wechatpy,快速完成微信公众号后台服务的简易搭建,做记录于此. wechatpy是一个python的微信公众平台sdk,封装了被动消息和 ...
 - Java多线程(八):ReentrantReadWriteLock
			
读写锁ReentrantReadWriteLock概述 读写锁ReentrantReadWriteLock,使用它比ReentrantLock效率更高. 读写锁表示两个锁,一个是读操作相关的锁,称为共 ...
 - vue中的键盘事件
			
@keydown(键盘按下时触发),@keypress(键盘按住时触发),@keyup(键盘弹起) 获取按键的键码 e.keyCode @keyup.13 按回车键 @keyup.enter ...
 - JS ES6
			
变量 let 块级作用域内有效 不能重复声明 不会预处理,不存在提升 var btns = document.getElementsByTagName('button'); for (let i = ...
 - ActiveMQ入门系列三:发布/订阅模式
			
在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...