首页 > 其他分享 >UVA10368 题解

UVA10368 题解

时间:2023-09-08 10:45:21浏览次数:48  
标签:状态 必败 题解 long 必胜 ge UVA10368 转移

2023-08-06 15:18:08 solution

双倍经验

这种有限轮游戏的博弈通常都是有两种状态,必胜态和必败态。

对于必胜态,指的是从它可以转移到必败态。

对于必败态,指的是从它不论如何只能转移到必胜态。

对于每个玩家都采取最优策略的有限游戏,我们通常只需要关注必胜态与必败态之间的转移即可得到先手必败或者先手必胜的结论。

回到这题,因为两个数有大小关系,我们不妨令 \(x\ge y\)。

当 \(x<2y\),只能转移到下一个状态 \((x-y,y)\)。

当 \(x\ge 2y\) 时,出现了多个可能的状态。令 \(\lfloor\frac{x}{y}\rfloor=k\)。

对于状态 \((x-ky,y)\),它只有两种可能:必胜态或者必败态。

若为必败态,显然当前状态为必胜态。

若为必胜态,由于 \((x-(k-1)y,y)\) 只能转移到 \((x-ky,y)\),那么 \((x-(k-1)y,y)\) 为必败态,而当前状态可以转移到 \((x-(k-1)y,y)\),所以当前状态为必胜态。

综上,对于所有 \(x\ge 2y\) 的情况,都是必胜态,剩下的状态因为只有一种转移,我们只需要递归求解即可,考虑到每次 \(x\) 至少减小一半,所以最劣复杂度为 \(O(\log x)\)。

\(Code\)

bool check(long long x,long long y){
    if(x==y)return 1;
    if(x<y)x^=y^=x^=y;
    if(x<(y<<1))return check(x-y,y)^1;
    return 1;
}
int main(){
    for(long long x=read(),y=read();x+y>0;x=read(),y=read()){
        if(check(x,y))puts("Stan wins");
        else puts("Ollie wins");
    }
}

标签:状态,必败,题解,long,必胜,ge,UVA10368,转移
From: https://www.cnblogs.com/NBest/p/17686913.html

相关文章

  • 【题解】AtCoder Regular Contest 162
    A.EkidenRace题目描述:有\(n\)个人参加了往返赛跑,每个人有一个编号\(1\)到\(n\)。已知以下信息:如果按照往路的成绩排序,那么任何两个人的成绩都不相同。同时第\(i\)个人在往路中排名第\(i\)。如果按照往返的成绩排序,那么任何两个人的成绩都不相同。同时第\(i\)个人......
  • P9189 [USACO23OPEN] Custodial Cleanup G 题解
    Description奶牛旅馆可以被看作一个\(N\)个节点\(M\)条边的无向简单图,其中每个房间有一个颜色\(C_i\),以及一个钥匙,颜色为\(S_i\),FJ最初在\(1\)号节点,手上一把钥匙都没有。FJ可以进行无数次以下操作:捡起当前房间的钥匙。(FJ可以同时手持多个钥匙)将部分或全部手......
  • All Pairs Maximum Flow题解
    前置知识:1.P3376【模板】网络最大流2.P4897【模板】最小割树(Gomory-HuTree)Ebola有一句很著名的话如果你乱搞过了我请你抽烟那么这道题肯定不能普通的dinic直接水过去,不然就不是紫题了,那么直接祭出最小割树,复杂度\(O(Tn^3m)\),但是因为dinic跑不满,所以是可以过的。......
  • [题解] AtCoder Beginner Contest 308 A~G
    AtCoderBeginnerContest308A~GA.NewSchemevoidMain(){vector<i64>a(8);for(auto&x:a)cin>>x;if(!is_sorted(a.begin(),a.end())&&!all_of(a.begin(),a.end(),[](auto&x){returnx%25!=0||!(100......
  • CF1374E2 Reading Books(hard version) 题解
    CF1374E2ReadingBooks(hardversion)这道题是在CF1374E1ReadingBooks(easyversion)的基础上出的,而且仅仅增加了一个\(m\)的限制,下面的做法也是基于简单版的思路而想到的。建议先尝试简单版,然后尝试此题。题意简述:有\(n\)本书,每本书有一个阅读时间\(t_i\),和属性\(......
  • Eclipse里做JBPM工作流gpd.xml中文乱码问题解决
         刚开始接到是做一个简单的文档借阅流程,对于流程定义是采用eclipse中的jbpm插件,但存在一个问题是节点中文命名的在gpd.xml中全部为乱码或根本看不到任何东西。     但是网上有人说没关系,这只是eclipse本身存在的一个bug,在项目所在硬盘目录下打开该文件还是显示正常......
  • 题解 [NOIP2018 提高组] 赛道修建
    题目链接挺综合的一道题目。询问最小值最大,考虑二分最小值,二分上下界是\([最小边权,树的直径]\),但是为了方便我们直接设为\([1,5\times10^8]\)即可。考虑如何\(check\),可以采用类似树形\(dp\)的方式进行贪心。对于节点\(u\)的子树,\(u\)内部的点显然可以构成几条链,同......
  • 【PCL】使用kdtree时pop_t报错问题解决
    问题描述在使用kdtree时,遇到的报错,具体报错信息如下:提示找不到pop_t,点击错误信息会进入到dist.h文件中问题解决解决办法很简单,在这里简单总结一下进入dist.h文件中,将下面这行代码,应该是在源文件的503行:typedefunsignedlonglongpop_t;具体位置如下图所示:将这行代码......
  • FTP权限问题解析,553 Can't open that file: Permission denied
    FTP权限问题解析,553Can'topenthatfile:Permissiondenied FTP上传文件,提示553Can'topenthatfile:Permissiondenied原因:目录的所属组,所属用户属于root,导致FTP无法上传,修改组和所属用户为www即可chown-fRwww./*chgrp-fRwww./* ......
  • 9.6 CF1830 题解
    9.6CF1830题解A.CopilCopacDrawsTrees链接真弱智题不用讲B.TheBOSSCanCountPairs题意每组数据给你一个\(n\)和两个序列\(a,b\)。求有多少个数对\((i,j)\)满足\(1\lei<j\len\)且\(a_i\timesa_j=b_i+b_j\)。题解考虑\(a_i\timesa_j=b_i......