洛谷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 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面 ...
随机推荐
- spring-cloud配置高可用eureka服务端
spring-cloud配置eureka服务端 eureka用来发现其他程序 依赖 <?xml version="1.0" encoding="UTF-8" ...
- cs231n线性分类器作业 svm代码 softmax
CS231n之线性分类器 斯坦福CS231n项目实战(二):线性支持向量机SVM CS231n 2016 通关 第三章-SVM与Softmax cs231n:assignment1——Q3: Impl ...
- leetcode832
vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) { vector& ...
- Ant 执行 exec cmd.exe 时路径包含空格的问题
需求描述 通过Ant脚本调用bat脚本 问题描述 bat脚本所在目录名称包含空格(space),cmd.exe调用时候报错The system cannot find the path specifi ...
- 如何POST一个JSON格式的数据给java接口,获得返回数据
/** * 模拟post进行url请求 * @param string $url * @param json $post_data */ public function request_post($u ...
- 前端html数组去重的方法
数组去重 用到的知识点: 1:indexOf() 该方法是返回数组中元素第一次出现的索引值: 如果有,则正常返回索引值: 如果检索的内容不存在于数组中,则返回-1 2:for循环 练习:数组去重 // ...
- java基础知识(一)之数据类型和运算符
1.标识符:JAVA里面我们可以为之命名的就是标识符,如变量.方法.类等. 但是标识符只能包含字母.数字.下划线(_)和美元符号($),并且只能以字母.下划线和美元符号开头不能以数字开头.2.变量:在 ...
- JavaWeb之JSP入门
JSP原理及执行过程 流程图分析 用户发起请求,用户通过浏览器访问jsp页面,浏览器将HTTP协议的请求部分发送到服务端. 服务端获取请求部分,分析请求,发现本次的请求的的是jsp页面,jsp引擎按照 ...
- Ubuntu下配置Apache的Worker模式
其实Apache本身的并发能力是足够强大的,但是Ubuntu默认安装的是Prefork模式下的Apache.所以导致很多人后面盲目的去 安装lighttpd或者nginx一类替代软件.但是这类软件有一 ...
- 使用 dataview 组件制作一览表
来自于<sencha touch权威指南>第八章,183页左右 ----------------------------------- 一.app.js代码: Ext.require([' ...