POJ2505 A multiplication game 博弈论 找规律

http://poj.org/problem?id=2505

感觉博弈论只有找规律的印象已经在我心中埋下了种子。。。

题目大意:两个人轮流玩游戏,Stan先手,数字 p从1开始,Stan乘以一个2-9的数,然后Ollie再乘以一个2-9的数,直到谁先将p乘到p>=n时那个人就赢了,而且轮到某人时,某人必须乘以2-9的一个数。

题目大意来源http://blog.csdn.net/jc514984625/article/details/71157698

因为谷歌翻译太难懂了,所以总是找题解找题目大意,药丸。

这是一道规律题QAQ(其实看上去很高级的sg函数写法也是找规律),对Stan和Ollie的必胜数字区间的枚举可以发现必胜区间的规律。

一点无关的感慨:这种单纯找规律就好好找规律好了,找到规律还要理性分析的结果是不仅会怀疑人生还会浪费很多时间最后什么也没有学到。(甚至还可能因为I64d挂掉(滑稽))

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<cmath>
 5 #include<iostream>
 6 #include<map>
 7 using namespace std;
 8 long long m;
 9 int main(){
10     while(~scanf("%lld",&m)){
11         long long w=9;
12         for(int i=1;;i++){
13             if(w>=m){
14                 if(i&1){
15                     printf("Stan wins.\n");
16                 }else{
17                     printf("Ollie wins.\n");
18                 }
19                 break;
20             }
21             if(i&1) w*=2;
22             else w*=9;
23         }
24     }
25     return 0;
26 }

时间: 2024-11-03 01:24:49

POJ2505 A multiplication game 博弈论 找规律的相关文章

HDU 1517 A Multiplication Game (博弈&amp;&amp;找规律)

A Multiplication Game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3691    Accepted Submission(s): 2097 Problem Description Stan and Ollie play the game of multiplication by multiplying an in

POJ2505 A multiplication game[博弈论]

A multiplication game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6028   Accepted: 3013 Description Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 to 9. Stan always starts with p =

POJ 2505 A multiplication game(找规律博弈/贪心)

题目链接 #include<iostream> #include<cstdio> using namespace std; typedef long long ll; int main() { ll n; while(~scanf("%I64d",&n)) {//其实算是 贪心了吧 //先手想赢,他会x2,这样子才能尽量避免让后手赢 //后手想赢,他就会x9,只有乘最大的,他胜算才最大 int t=0; ll l=1,r=9; while(1) { if

ACdream 1213 Matrix Multiplication【水题 、 找规律】

Matrix Multiplication Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) 链接:http://acdream.info/problem?pid=1213 Problem Description Let us consider undirected graph G = {V; E} which has N vertices and M edges. Incidence

「POJ2505」A multiplication game [博弈论]

题目链接:http://poj.org/problem?id=2505 题目大意: 两个人轮流玩游戏,Stan先手,数字 p从1开始,Stan乘以一个2-9的数,然后Ollie再乘以一个2-9的数,直到谁先将p乘到p>=n时那个人就赢了,而且轮到某人时,某人必须乘以2-9的一个数. 解题思路: 这是一道博弈论的题目.不过这道题并没有用SG函数相关的知识.首先我们可以很快判断区间[2,9]必定是先手胜然后紧接着是区间[10,18]区间是后手胜然后是什么呢?[18,??]我们可以这样来理解:我们可以

【博弈论】【SG函数】【找规律】Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) E. Game of Stones

打表找规律即可. 1,1,2,2,2,3,3,3,3,4,4,4,4,4... 注意打表的时候,sg值不只与剩下的石子数有关,也和之前取走的方案有关. //#include<cstdio> //#include<set> //#include<cstring> //using namespace std; //bool vis[16]; //int n,SG[16][1<<16]; //int sg(int x,int moved) //{ // if(SG

POJ 1740 A New Stone Game 又是博弈论配对找规律orz 博弈论 规律

http://poj.org/problem?id=1740 这个博弈一眼看上去很厉害很高大上让人情不自禁觉得自己不会写,结果又是找规律-- 博弈一般后手胜都比较麻烦,但是主要就是找和先手的对应关系,依然看了题解-- 如果所有石头堆两两配对的话后手对先手的每一步都可以对应走一步,那么此时后手必胜. 如果不是两两配对,先手可以通过一次操作使石头堆两两配对,此时的两两配对局面面对的是后手,所以先手必胜. 不是两两配对时的操作:首先将所有非配对推按大小排序(只有一堆直接取没就可以了): 然后显然不配对

(zst的博弈) 【推理+找规律】

题目: 甲乙两人玩一个游戏: 一张卡片上有个数字,甲乙两人轮流操作, 若当前卡片上的数字为x, 每次操作可以把它变为x+1或2x, 且不能超过n (例如n=8,x=6,只能变为7而不能变为12), 每次甲首先在卡片上写1,规定写n的人获胜.给定n, 问甲是否有必胜策略? 分析: 看起来像一道博弈论的题,但实际上仅需细心的推理,耐心的找规律即可. 1.因为甲先写的1,所以乙的所有奇数全部要从甲的偶数哪里加1得来,因此如果n为奇数,甲只要保证自己写的数全是      奇数即可,因此奇数的情况下,甲赢

The Cow Lineup_找规律

Description Farmer John's N cows (1 <= N <= 100,000) are lined up in a row.Each cow is labeled with a number in the range 1...K (1 <= K <=10,000) identifying her breed. For example, a line of 14 cows might have these breeds: 1 5 3 2 5 1 3 4 4