• 【板子】博弈论


    这里存放三种基础博弈论的板子。

    看代码趴,注释写了应用情况。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 using namespace std;
     6 int n,m,x;
     7 
     8 //巴什博弈 
     9 //只有一堆n个物品,两个人轮流从这堆物品中取物,
    10 //规定每次至少取一个,最多取m个。最后取光者得胜。
    11 void bash(){
    12     cin>>n>>m;
    13     if(n%(m+1)){
    14         cout<<"Win"<<endl;
    15     }
    16     else{
    17         cout<<"Lose"<<endl;
    18     }
    19 }
    20 
    21 //威佐夫博弈
    22 //有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,
    23 //规定每次至少取一个,多者不限,最后取光者得胜 。
    24 void Wythoff(){
    25     double k = (1+sqrt(5.0))/2;
    26     cin>>n>>m;
    27     if(n > m){
    28         swap(n,m);
    29     }
    30     int t = m - n;
    31     if( n == int(1.0 * t * k)){
    32         cout<<"Lose"<<endl;
    33     }
    34     else{
    35         cout<<"Win"<<endl;
    36     }
    37 }
    38 
    39 //尼姆博弈
    40 //有n堆石子,从任意一堆石子中取出任意数量的石子
    41 //规定至少取一颗,至多取出这一堆剩下的所有石子,最后取光者得胜。
    42 
    43 void nim(){
    44     cin>>n;
    45     int ans = 0;
    46     for(int i = 1; i<= n; i++){
    47         cin>>x;
    48         ans ^= x;
    49     }
    50     if(ans == 0){
    51         cout<<"Lose"<<endl;
    52     }
    53     else{
    54         cout<<"Win"<<endl;
    55     }
    56 }
    57 
    58 int main(){
    59 
    60     return 0;
    61 }
  • 相关阅读:
    中文和英文
    文件字符流
    Java IO File
    关于整数拆分的递归法与母函数法
    图论·Dijkstra·HDU2066
    图论·Floyd算法·HDU2544&1874 (伪)2066
    关于 图论·并查集·HDU1232&1856
    Power of Cryptography
    Y2K Accounting Bug
    整数划分
  • 原文地址:https://www.cnblogs.com/Asumi/p/9758972.html
Copyright © 2020-2023  润新知