POJ 2505 A multiplication game

2人阅读 评论(0) 收藏 举报
分类:

https://www.cnblogs.com/bo-tao/archive/2012/09/28/2707735.html

先引入必胜点和必败点两个概念:

   必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。

   必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。

算法实现:

   步骤1:将所有终结位置标记为必败点(P点);(终结位置指的是不能将游戏进行下去的位置)

   步骤2:将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点)

   步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ;

   步骤4:如果在步骤3未能找到新的必败(P点),则算法终止;否则,返回到步骤2。

解题思路:

   由于每次都是从p=1开始的,所以只要判断每个游戏中1为必败点还是必胜点即可。

 (以下各式 / 均为取上整)依照上面所提到的算法,将终结位置,即[n,无穷]标记为必败点;

   然后将所有一步能到达此必败段的点标记为必胜点,即[n/9,n-1]为必胜点;

   然后将只能到达必胜点的点标记为必败点,即[n/9/2,n/9-1]为必败点;

   重复上面2个步骤,直至可以确定1是必胜点还是必败点。


#include<iostream>
 #include<cstdio>
 #include<cstdlib>
 #include<algorithm>
 #include<cmath>
 #include<queue>
 #include<set>
 #include<map>
 #include<cstring>
 #include<vector>
 #include<string>
 #define LL long long
 using namespace std;
 
 int main(  )
 {
     double num;
     while( scanf( "%lf",&num )==1 )
     {
         while( num > 18 )
                num /= 18;
         if( num <= 9 ) puts( "Stan wins." );
         else puts( "Ollie wins." );    
     }
     //system( "pause" );
     return 0;
 }

查看评论

POJ 1651-Multiplication Puzzle

Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5792 Accepted: 35...
  • mowayao
  • mowayao
  • 2014-04-19 15:15:12
  • 732

poj 2505 A multiplication game

题意:2 个人玩游戏,从 1 开始,轮流对数进行累乘,直到超过一个指定的值。 解题思路: 如果输入是 2 ~ 9 ,因为Stan 是先手,所以Stan 必胜 如果输入是 10~18 ,因为Ollie...
  • hlmfjkqaz
  • hlmfjkqaz
  • 2013-08-17 20:36:43
  • 381

[poj]2505 A multiplication game

Description Stan and Ollie play the game of multiplication by multiplying an integer p by one of ...
  • Oliverkehl
  • Oliverkehl
  • 2014-02-22 16:28:32
  • 418

POJ 2505:A multiplication game

A multiplication game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5...
  • qq_28954601
  • qq_28954601
  • 2016-01-31 14:39:24
  • 212

poj 2505 A multiplication game

题意: 规定一个操作,每次能把原来的数乘以2~9中的任意一个数。2个人轮流进行操作。给定一个数谁先操作得到大于等于该数谁赢的这场比赛。 分析:  对于先手第一次面对的是1所以2~9是先手必胜的 ...
  • zp___waj
  • zp___waj
  • 2016-08-13 14:22:12
  • 199

A Multiplication Game (博弈,规律)

Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 t...
  • feng_zhiyu
  • feng_zhiyu
  • 2017-08-08 15:30:39
  • 144

2505 A multiplication game

A multiplication gameTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3560 Accepted: 1669De...
  • kongming_acm
  • kongming_acm
  • 2010-07-16 09:33:00
  • 525

HDU 1517 A Multiplication Game 小聪明博弈

A Multiplication Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S...
  • wr132
  • wr132
  • 2016-04-25 20:44:41
  • 417

POJ1651Multiplication Puzzle题解动态规划DP

Multiplication PuzzleTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 3460 Accepted: 2034De...
  • power721
  • power721
  • 2010-08-11 15:19:00
  • 1443

A Multiplication Game

A Multiplication Game Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/O...
  • u013667751
  • u013667751
  • 2014-07-27 01:05:47
  • 378
    个人资料
    等级:
    访问量: 30
    积分: 16
    排名: 227万+
    文章分类
    文章存档