洛谷P4459/loj#2511 [BJOI2018]双人猜数游戏(博弈论)
题面
题解
所以博弈论的本质就是爆搜么……
//minamoto
#include<bits/stdc++.h>
#define R register
#define pi pair<int,int>
#define fi first
#define se second
#define IT vector<int>::iterator
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
const int N=505;
int f[25][N][N],cnt[N*N],g[N][N];vector<int>v[N*N];
int S,T,k;char c[25];
bool dp(int p,int a,int b){
if(!p)return 0;
if(~f[p][a][b])return f[p][a][b];
if(p==1){
f[p][a][b]=((k==1)?(cnt[a*b]<=1):(a+b-2*S<=1));
return f[p][a][b];
}
if(dp(p-1,a,b))return f[p][a][b]=1;
if((p&1)==k){
int c=0;
for(IT it=v[a*b].begin();it!=v[a*b].end();++it)
if(!dp(p-1,*it,a*b/(*it)))++c;
f[p][a][b]=(c==1);
}else{
int c=0;
fp(i,S,((a+b)>>1))if(!dp(p-1,i,a+b-i))++c;
f[p][a][b]=(c==1);
}
return f[p][a][b];
}
bool ck(int a,int b){
if(~g[a][b])return g[a][b];
int c=0;
if(((T+2)&1)==k){
for(IT it=v[a*b].begin();it!=v[a*b].end();++it)
if(dp(T+1,*it,a*b/(*it))&&!dp(T,*it,a*b/(*it)))++c;
}else{
fp(i,S,((a+b)>>1))
if(dp(T+1,i,a+b-i)&&!dp(T,i,a+b-i))++c;
}
g[a][b]=(c==1);
return g[a][b];
}
pi solve(){
memset(f,-1,sizeof(f));
memset(g,-1,sizeof(g));
memset(cnt,0,sizeof(cnt));
fp(i,S*S,500*500){
int t=sqrt(i);v[i].clear();
fp(j,S,t)if(i%j==0)++cnt[i],v[i].push_back(j);
}
fp(s,S+S,1000)fp(i,S,500){
if(i>s)break;
fp(j,i,s-i){
if(i+j>s)break;
if(dp(T+1,i,j)&&!dp(T,i,j)&&ck(i,j))return pi(i,j);
}
}
}
int main(){
freopen("guess25.in","r",stdin);
scanf("%d%s%d",&S,c+1,&T);
k=(c[1]=='A');
pi ans=solve();
printf("%d %d\n",ans.fi,ans.se);
return 0;
}
洛谷P4459/loj#2511 [BJOI2018]双人猜数游戏(博弈论)的更多相关文章
- [BJOI2018]双人猜数游戏
题解: 彻彻底底的思维题???还是挺难的.. 首先连样例解释都没给..没看题解搞了很久 大概就是 一个人要根据另一个人的决策来猜数 可以去看洛谷那篇题解的解释 然后我们用$f[A/B][i][j][k ...
- 【洛谷4459】[BJOI2018] 双人猜数游戏(动态规划)
点此看题面 大致题意: 一直有两个数\(m,n\),已知\(s\le m\le n\),且\(Alice\)和\(Bob\)二个"最强大佬"各知道\(mn\)和\(m+n\).每轮 ...
- [luogu4459][BJOI2018]双人猜数游戏(DP)
https://zhaotiensn.blog.luogu.org/solution-p4459 从上面的题解中可以找到样例解释,并了解两个人的思维方式. A和B能从“不知道”到“知道”的唯一情况,就 ...
- BZOJ5291/洛谷P4458/LOJ#2512 [Bjoi2018]链上二次求和 线段树
原文链接http://www.cnblogs.com/zhouzhendong/p/9031130.html 题目传送门 - LOJ#2512 题目传送门 - 洛谷P4458 题目传送门 - BZOJ ...
- 洛谷P4458 /loj#2512.[BJOI2018]链上二次求和(线段树)
题面 传送门(loj) 传送门(洛谷) 题解 我果然是人傻常数大的典型啊-- 题解在这儿 //minamoto #include<bits/stdc++.h> #define R regi ...
- 洛谷P4457/loj#2513 [BJOI2018]治疗之雨(高斯消元+概率期望)
题面 传送门(loj) 传送门(洛谷) 题解 模拟赛的时候只想出了高斯消元然后死活不知道怎么继续--结果正解居然就是高斯消元卡常? 首先有个比较难受的地方是它一个回合可能不止扣一滴血--我们得算出\( ...
- 【LOJ】#2511. 「BJOI2018」双人猜数游戏
题解 设\(f[p][a][b]\)表示询问了\(p\)次,答案是\(a,b\)是否会被猜出来 然后判断如果\(p = 1\) 第一个问的\(Alice\),那么\([s,\sqrt{nm}]\)约数 ...
- 洛谷1005 【NOIP2007】矩阵取数游戏
问题描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- 【BZOJ 1594】 [Usaco2008 Jan]猜数游戏 (二分+并查集)
1594: [Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面 ...
随机推荐
- python's fifteenth day for me 递归函数
递归... def age(n): if n == 1: return 18 else: return age(n-1)+2 # 反复调用函数age() print(age(4)) l = [1,3, ...
- hadoop文件写入
转:http://blog.csdn.net/xiaoshunzi111/article/details/48198105 由上图可知;写入文件分为三个角色,分别是clientnode nameno ...
- HashMap与ConcurrentHashMap的区别(转)
从JDK1.2起,就有了HashMap,正如前一篇文章所说,HashMap不是线程安全的,因此多线程操作时需要格外小心. 在JDK1.5中,伟大的Doug Lea给我们带来了concurrent包,从 ...
- 时区时差换算(GMT,UTC,PST,PDT)
2014年美国冬令时标准时间Stardand Time于11月2号开始实施,直到2015年3月8号为止. 冬令时,是指在冬天使用的标准时间.在使用日光节约时制(夏令时)的地区,夏天时钟拨快一小时,冬天 ...
- Python3.7安装Django
一.系统环境 操作系统:Win7 64位 Python版本:3.7 二.安装参考 Django的下载网址:https://www.djangoproject.com/download/ 当前最新版本: ...
- SQL Server 2008 R2 Express 不能启动
今天,新安装了Sql Server 2008 R2 Express,准备部署相应系统,在完成了数据库还原,系统部署以后,从浏览器里输入系统网址,出现登录页面,登录时报错,无法连上数据库.在查找原因的过 ...
- Yii2邮箱发送与配置
1配置邮箱 在 common/config/web.php中写入以下代码配置 Mail代理 return [ 'components' => [ ...//your code, //以下是 ma ...
- 过渡函数transition-timing-function
- ThinkPHP5权限控制
我在用ThinkPHP5做开发的时候发现,它没有权限类,自己写太麻烦,于是就想到了把TP3里面的权限类拿来修改使用,结果这种方法是可行的,下面记录附上修改后的Auth.php权限类 <?php ...
- URAL 1141. RSA Attack(欧拉定理+扩展欧几里得+快速幂模)
题目链接 题意 : 给你n,e,c,并且知道me ≡ c (mod n),而且n = p*q,pq都为素数. 思路 : 这道题的确与题目名字很相符,是个RSA算法,目前地球上最重要的加密算法.RSA算 ...