【POJ1704】Georgia and Bob(博弈论)】的更多相关文章

从这开始我们来进入做题环节!作为一个较为抽象的知识点,博弈论一定要结合题目才更显魅力.今天,我主要介绍一些经典的题目,重点是去理解模型的转化,sg函数的推理和证明.话不多说,现在开始! Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000K       Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on…
http://poj.org/problem?id=1704 我并不知道阶梯博弈是什么玩意儿,但是这道题的所有题解博客都写了这个标签,所以我也写了,百度了一下,大概是一种和这道题类似的能转换为尼姆博弈的博弈. 解法大概是配对之后的尼姆博弈,没看到一个格子只能放一个石头(以为可以直接把石头移动到前一个石头在的格子),所以莫名其妙wa了orz,总是因为题目被踩爆orz 其实博弈也是个很神奇的东西,现在这个东西给我的印象又变成配对找规律了(泪),虽然看上去从后往前两两配对的做法很有道理但是迫切需要更数…
Georgia and Bob poj-1704 题目大意:题目链接 注释:略. 想法:我们从最后一个球开始,每两个凑成一对.如果有奇数个球,那就让第一个球和开始位置作为一对. 那么如果对手移动的是一对球的后一个,我们就移动下一对球的前一个. 因为两个球挨着,所以对手动多少,我们动多少. 如果对手动的是一对球的前一个,我们考虑: 将对与对之间的格子当成一堆石子,那么对手移动一对球的前一个,就相当于在这堆石子中取走石子. 那么我们就对应的在另一堆中取石子. 这就相当于一个Nim游戏.如果对手不取石…
Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9771   Accepted: 3220 Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, number the grids from left to right by 1, 2, 3, ..., and place N ch…
Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000KB   64bit IO Format: %I64d & %I64u Submit Status Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, number the grids from left to right by 1, 2,…
Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14312   Accepted: 4840 Description Georgia and Bob decide to play a self-invented game. They draw a row of grids on paper, number the grids from left to right by 1, 2, 3, ..…
POJ1704 这道题可以转化为经典的Nim游戏来解决. Nim游戏是这样的 有n堆石子,每堆各有ai个. 两个人轮流在任意石子堆中取至少1个石子,不能再取的输. 解决方法如下, 对N堆石子求异或 为0则甲必胜 否则乙必胜 证明略. 对于这道题目 两个棋子的间距可以当作Nim石子的一堆来处理, 当然,在这个题目中 玩家把左边的棋子向左移动后等于给Nim石堆增加了石子,不过无伤大雅.只要减去对应的石子数就回到了原状态 代码很简单 输入数据是无序的 需要排序 #include<iostream>…
题目链接 \(Description\) 一个1~INF的坐标轴上有n个棋子,给定坐标Pi.棋子只能向左走,不能跨越棋子,且不能越界(<1).两人每次可以将任意一个可移动的棋子向左移动一个单位.问先/后手会赢或是否无解. \(Solution\) 首先考虑相邻两个棋子 无论一个人怎么移动前边的棋子,后手都能移动后面棋子同样的距离使得这两个棋子间间隔不变(后手可以模仿.但是移动后面的棋子时,后手是不能模仿的) 同时两个棋子局面的终止是两个棋子相邻 不难想到以这两个棋子间距离为石子数做一个Nim游戏…
阶梯博弈的变形.不知道的话还是一道挺神的题. 将所有的棋子两两绑在一起,对于奇数个棋子的情况,将其与起点看作一组.于是便可以将一组棋子的中间格子数看作一推石子.对靠右棋子的操作是取石子,而对左棋子的操作并不会对游戏造成影响,考虑如果在 NIM 博弈时有增加石子的操作,那么下一步另一个人就可以去相同数量的石子,于是局面并没有改变. 然后就来一发异或和就行了. #include <bits/stdc++.h> using namespace std; int n,a[10005]; int mai…
[POJ1704]Georgia and Bob(博弈论) 题面 POJ Vjudge 题解 这种一列格子中移动棋子的问题一般可以看做成一个阶梯博弈. 将一个棋子向左移动时,它和前面棋子的距离变小,和后面棋子的距离变大,并且减小的值和增大的值是相等的,因此,这个过程我们就可以等价成一个阶梯博弈了. #include<cstdio> #include<iostream> #include<algorithm> using namespace std; int a[1010…