原创 POJ2960(SG函數,模板題)

題目大意:已知一次可拿個數的種類;求出先手是否勝利,若勝利輸出W否則輸出L; SG函數模板: #include<string.h> const int N = 10008; int a[110],sg[N],f[N]; void

原创 SDNUOJ1014

直接暴力做就好了 注意格式 最後一個數後沒有空格 #include <stdio.h> #include <string.h> int main(){ int n; int a[10]; memset(

原创 HDU1864巴什博奕(水題)

題解: 與此題相同[(http://blog.csdn.net/gaokao_sijiao/article/details/51377382)] 代碼如下: #include <cstdio> int main() {

原创 SDNUOJ1011(斯特靈數)

Stirling數的第er類應用 有關斯特靈數的知識可以看看維基百科 Stirling數兩大應用 1. 第一類Stirling數是有正負的,其絕對值是n個元素的項目分作k個環排列的方法數目。常用的表示方法有s(n,k) ,

原创 HDU2147(模擬找規律)

首先模擬打表,從表(1表示必勝態,0表示必敗態)中找到規律:有偶數先手一定贏,沒有偶數則後手贏 打表代碼 #include <stdio.h> bool gird[2000+10][2000+10];//1代表必勝點 0代表必敗

原创 SG函數入門

下面介紹sg函數(解決博弈問題的王道) sg 即Graph Game,把博弈遊戲抽象成有向無環圖 (1) 有向無環圖 (2) 玩家1先移動,起點是x0 (3) 兩個玩家輪流移動 (4) 對於頂點x, 玩家能夠移

原创 POJ2234(二進制和平衡狀態概念)

1902年獲勝策略已由美國數學家C.L.Bouton分析完成,用到的是二進制和平衡狀態概念。其結論是: 對於n堆石子,第i (1<=i<=n)堆石子

原创 SDNUOJ1013(DP||模擬)

按照要求來,無需講解 #include<iostream> #include <stdlib.h> #include<cstdio> #include<cstring> using namespace std; int cmp(c

原创 POJ2484

題意:a個硬幣圍成一圈兩人輪流拿;誰拿到最後一個就贏了;       1,若a<3;第一個人必勝;       2,若a>=3;第二個人必勝;  

原创 HDU2149(巴什博弈Bash Game)

題意可以抽象成一下模型:     只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每次至少取一個,最多取m個。最後取光者得勝。     顯然,如果

原创 SDNUOJ1012(區間合併)

首先寫一個結構體,保存區間 對區間開始排序 遍歷所有區間,如果begin比上一個小 區間數減一; #include <stdio.h> #include <stdlib.h> struct record { int b

原创 POJ2975(Nim遊戲)

典型的Nim遊戲。 題意:給定n堆石子,求是否爲必勝態;若是,則求出有多少種拿法。 a[]數組存數,所有數異或結果result與a[i]異或,若結果

原创 POJ1003水題

POJ1003 水題 讀懂提議就ok了 題意簡介:輸入一個浮點數,記爲c,找出累加式1/2 + 1/3 + 1/4 + … + 1/(n + 1)大於等於c的最小的n,0.01<=c<=5.20,輸入0.00代表輸入結束。

原创 16山東省賽A題

這個題是去年的簽到題,今年終於有博客了,補上! #include<cstdio> int main() { int kase; scanf("%d",&kase); while(kase--) {

原创 HDU2516(斐波那契博弈)

淚崩什麼都不懂 繼瞭解了威佐夫博弈後,才發現原來還有這麼多博弈 斐波那契博弈: 有一堆物品,兩人輪流取物品,先手最少取一個,至多無上限,但不能把物品取完,之後每次取的物品數不能超過上一次取的物品數的二倍且至少爲一件,取走最後一件物品