码迷,mamicode.com
首页 > 其他好文 > 详细

博弈知识入门引导

时间:2018-08-15 14:59:14      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:src   logs   int   alt   递归   image   技术   www   pos   

【转】ACM博弈知识汇总

https://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html


举个栗子:

桌面上有N个小球,两个人轮流取,每人一次最多取不超过X (1<=X<n)个,取走最后一个小球的人获胜!

试问先手是否可以采取恰当的策略达到必赢的状态!可以的话输出yes,否则的话,输出no!

输入:

10 3

12 3

 输出

 yes

 no

 


 

 一种简洁的搜索方式:

技术分享图片技术分享图片

 

代码:

 1 #include <iostream>
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<algorithm>
 5 #include<math.h>
 6 using namespace std;
 7 
 8 bool fact(int n,int k)   //递归博弈代码
 9 {
10     if(n==0)return false;
11     if(n<=k)return true;
12     for(int i=1; i<=n&&i<=k; i++) //本次作出选择选取i个小球
13     {
14         if(fact(n-i,k)==false)//下一位再走一次false
15             return true;
16     }
17     return false;
18 }
19 
20 int main()
21 {
22     int n,k;
23     scanf("%d%d",&n,&k);
24     if(fact(n,k))
25         printf("yes\n");
26     else
27         printf("no\n");
28 
29     return 0;
30 }

 

博弈知识入门引导

标签:src   logs   int   alt   递归   image   技术   www   pos   

原文地址:https://www.cnblogs.com/zhazhaacmer/p/9480333.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!