题面

传送门(loj)

传送门(洛谷)

题解

所以博弈论的本质就是爆搜么……

题解

//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]双人猜数游戏(博弈论)的更多相关文章

  1. [BJOI2018]双人猜数游戏

    题解: 彻彻底底的思维题???还是挺难的.. 首先连样例解释都没给..没看题解搞了很久 大概就是 一个人要根据另一个人的决策来猜数 可以去看洛谷那篇题解的解释 然后我们用$f[A/B][i][j][k ...

  2. 【洛谷4459】[BJOI2018] 双人猜数游戏(动态规划)

    点此看题面 大致题意: 一直有两个数\(m,n\),已知\(s\le m\le n\),且\(Alice\)和\(Bob\)二个"最强大佬"各知道\(mn\)和\(m+n\).每轮 ...

  3. [luogu4459][BJOI2018]双人猜数游戏(DP)

    https://zhaotiensn.blog.luogu.org/solution-p4459 从上面的题解中可以找到样例解释,并了解两个人的思维方式. A和B能从“不知道”到“知道”的唯一情况,就 ...

  4. BZOJ5291/洛谷P4458/LOJ#2512 [Bjoi2018]链上二次求和 线段树

    原文链接http://www.cnblogs.com/zhouzhendong/p/9031130.html 题目传送门 - LOJ#2512 题目传送门 - 洛谷P4458 题目传送门 - BZOJ ...

  5. 洛谷P4458 /loj#2512.[BJOI2018]链上二次求和(线段树)

    题面 传送门(loj) 传送门(洛谷) 题解 我果然是人傻常数大的典型啊-- 题解在这儿 //minamoto #include<bits/stdc++.h> #define R regi ...

  6. 洛谷P4457/loj#2513 [BJOI2018]治疗之雨(高斯消元+概率期望)

    题面 传送门(loj) 传送门(洛谷) 题解 模拟赛的时候只想出了高斯消元然后死活不知道怎么继续--结果正解居然就是高斯消元卡常? 首先有个比较难受的地方是它一个回合可能不止扣一滴血--我们得算出\( ...

  7. 【LOJ】#2511. 「BJOI2018」双人猜数游戏

    题解 设\(f[p][a][b]\)表示询问了\(p\)次,答案是\(a,b\)是否会被猜出来 然后判断如果\(p = 1\) 第一个问的\(Alice\),那么\([s,\sqrt{nm}]\)约数 ...

  8. 洛谷1005 【NOIP2007】矩阵取数游戏

    问题描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  9. 【BZOJ 1594】 [Usaco2008 Jan]猜数游戏 (二分+并查集)

    1594: [Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面 ...

随机推荐

  1. CAD库中统计PBN运行航路条数和总距离

    select 'PBN运行航路' 类型, fb.b 总条数, fa.a 总距离 from                (                select sum(s)  a  from ...

  2. 图灵机器人,web录音实现自动化交互问答

    一.图灵机器人 介绍 图灵机器人 是以语义技术为核心驱动力的人工智能公司,致力于“让机器理解世界”,产品服务包括机器人开放平台.机器人OS和场景方案. 官方地址为: http://www.tuling ...

  3. HTML5+ 初识,HBuilder,夜神模拟器,Webview

    一.HTML5+ 初识 HTML5 Plus应用概述 HTML5 Plus移动App,简称5+App,是一种基于HTML.JS.CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任 ...

  4. Android控件使用自定义字体

    我们不可能只满足于系统自带的字体(太丑),其实控件自定义字体也很简单.. 1.首先找到该字体的ttf文件. 2.把字体文件放在scr/mian/assets/fonts下,如果没有该路径则自己创建. ...

  5. iis7+的虚拟目录:未能加载程序集“**”。请确保在访问该页之前已经编译了此程序集

    在使用win8系统后,突然想运行iis,于是在windows组件中启用iis,并aspnet_regiis.exe -i注册iis后,于是开始发布了一个站点,一切正常 继而,在该站点下添加虚拟目录,然 ...

  6. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 4_Linear Regression with Multiple Variables 多变量线性回归

    Lecture 4 Linear Regression with Multiple Variables 多变量线性回归 4.1 多维特征 Multiple Features4.2 多变量梯度下降 Gr ...

  7. (转)Mac下MySql安装经历(含安装错误排查、卸载多种折腾)

    在安装mysql的时候,活活折腾我两天.结果终于被我折腾成功了……一开始我就放了个错误:我下了32位版本的mysql:mysql-5.5.8-osx10.6-x86.dmg 须知在mac下装的是64位 ...

  8. SQL CLR学习

    SQL CLR (SQL Common Language Runtime) 是自 SQL Server 2005 才出现的新功能,它将.NET Framework中的CLR服务注入到 SQL Serv ...

  9. js颜色拾取器

    几年前,很难找到一个合适的颜色选择器.正好看到很多不错的JavaScript颜色选择器插件,故而把这些编译汇总.在本文,Web设计师和开发人员 Kevin Liew 选取了11个相应插件,有些会比较复 ...

  10. Java方法学习疑问

    此方法不理解 finalize() 方法 Java允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做finalize( ),它用来清除回收对象. 例如,你可以使用finaliz ...