【UOJ#51】【UR #4】元旦三侠的游戏(博弈论)
【UOJ#51】【UR #4】元旦三侠的游戏(博弈论)
题面
题解
考虑暴力,\(sg[a][b]\)记录\(sg\)函数值,显然可以从\(sg[a+1][b]\)和\(sg[a][b+1]\)推过来。
发现可以从\(sg[a][b]\)推到\(sg[a][b+1]\)的值很少,所以可以直接把这些值全部提前计算出来,这部分大概有\(\sqrt n\)个,剩下的可以推到\(sg[a+1][b]\)而不能推到\(sg[a][b+1]\)的位置可以通过\(a\)以及最大的满足\(x^b\le n\)的\(x\)直接计算出来。
#include<iostream>
#include<cstdio>
#include<cmath>
int n,m,a,b,B[35];
bool f[35000][35],vis[35000][35];
int calc(int a,int b)
{
if(a>B[b])return true;
if(a>B[b+1])return (B[b]-a)&1;
if(vis[a][b])return f[a][b];
vis[a][b]=true;
if(!calc(a+1,b))return f[a][b]=true;
if(!calc(a,b+1))return f[a][b]=true;
return f[a][b]=false;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=32;++i)B[i]=floor(pow(n,1.0/i)+1e-9);
while(m--)
{
scanf("%d%d",&a,&b);
puts(calc(a,b)?"Yes":"No");
}
return 0;
}
【UOJ#51】【UR #4】元旦三侠的游戏(博弈论)的更多相关文章
- 【uoj#51】[UR #4]元旦三侠的游戏 博弈论+dp
题目描述 给出 $n$ 和 $m$ ,$m$ 次询问.每次询问给出 $a$ 和 $b$ ,两人轮流选择:将 $a$ 加一或者将 $b$ 加一,但必须保证 $a^b\le n$ ,无法操作者输,问先手是 ...
- [UOJ Round#4 A] [#51] 元旦三侠的游戏 【容斥 + 递推】
题目链接:UOJ - 51 据说这题与 CF 39E 类似. 题目分析 一看题目描述,啊,博弈论,不会!等待爆零吧... 这时,XCJ神犇拯救了我,他说,这题可以直接搜啊. 注意!是用记忆化搜索,状态 ...
- [UOJ #51]【UR #4】元旦三侠的游戏
题目大意:给$n$,一个游戏,给$a,b$,两个人,每人每次可以把$a$或$b$加一,要求$a^b\leqslant n$,无法操作人输.有$m$次询问,每次给你$a,b$,问先手可否必胜 题解:令$ ...
- 【UR #4】元旦三侠的游戏(博弈论+记忆化)
http://uoj.ac/contest/6/problem/51 题意:给m($m \le 10^5$)个询问,每次给出$a, b(a^b \le n, n \le 10^9)$,对于每一组$a, ...
- A. 【UR #4】元旦三侠的游戏
题解: 挺水的吧 会发现当b不等于1的时候,状态只有sigma i x^(1/i) 显然这东西很小.. 然后我们会发现每个点向两个点动 定义必胜点和必败点 当一个点有一条边连向必败点 那么它就是必胜点 ...
- uoj51 元旦三侠的游戏
题意:询问a,b,n.每次可以a+1或b+1,保证a^b<=n,不能操作者输.问先手是否赢? n<=1e9. 标程: #include<cstdio> #include< ...
- UOJ.52.[UR #4]元旦激光炮(交互 思路)
题目链接 \(Description\) 交互库中有三个排好序的,长度分别为\(n_a,n_b,n_c\)的数组\(a,b,c\).你需要求出所有元素中第\(k\)小的数.你可以调用至多\(100\) ...
- UOJ 【UR #5】怎样跑得更快
[UOJ#62]怎样跑得更快 题面 这个题让人有高斯消元的冲动,但肯定是不行的. 这个题算是莫比乌斯反演的一个非常巧妙的应用(不看题解不会做). 套路1: 因为\(b(i)\)能表达成一系列\(x(i ...
- UOJ #22 UR #1 外星人
LINK:#22. UR #1 外星人 给出n个正整数数 一个初值x x要逐个对这些数字取模 问怎样排列使得最终结果最大 使结果最大的方案数又多少种? n<=1000,x<=5000. 考 ...
随机推荐
- 利用Common-Fileupload上传文件图片
一,介绍 common-fileupload是appache的开源组件,基于该组件可以轻松实现文件上传的功能,strust框架的文件上传功能也是基于该组件. 二,使用 1,导入两个jar包:commo ...
- 详细说明phpmyadmin连接,管理多个mysql服务器
用phpmyadimn来连接管理多个数据库要修改配置文件,挺不爽的,并且连接远程数据库,速度不行.可以使用其他数据库管理工具,请参考,navicat 结合快捷键 非常好用,开源,好用mysql 管理工 ...
- Linux 安装reids
1.下载: wget http://download.redis.io/releases/redis-3.0.0.tar.gz 2.解压: .tar.gz 3.安装: cd /redis- make ...
- kickstart_2018_round_H_C Let Me Count The Ways
思路: 容斥. 实现: #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ; ll f[MAXN ...
- 一个简单的注册页面,基于JS
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Android recyclerview 只显示一行 宽度不适配
最近学习recyclerview 遇到的问题 1.宽度不适配 正确写法 LayoutInflater.from(context).inflate(R.layout.item_view,parent,f ...
- angulajs中引用chart.js做报表,修改线条样式
目前还有个问题,在手机上看,当折线y轴值超过1000,会有点问题 1.下载chart js,可以用bower 命令下载 http://www.chartjs.org/docs/#line-chart- ...
- [Batch檔案筆記] 在UNC路徑中執行Batch檔
為了讓其他人可以免安裝又可以執行python程式所以我把python portable版本 winpython 放在samba的空間共享但是使用者如果要開 winpython cammand prom ...
- leetcode_1053. Previous Permutation With One Swap
1053. Previous Permutation With One Swap https://leetcode.com/problems/previous-permutation-with-one ...
- 优先队列的使用——Expedition
一.题目描述 你需要驾驶一辆卡车行驶L单位距离.最开始时,卡车上有P单位的汽油.卡车每开1单位距离需要消耗1单位的汽油.如果在途中车上的汽油耗尽,卡车就无法继续前行,因而无法到达终点.中途共有N个加油 ...