這道題之前做過的,但是晚上拿出來熟悉一下!
但是runtime error!,很奇怪,查!堅決不看之前的**。後來突然乙個念頭:會不胡hash陣列沒有初始化!加了個hash[110]=;
a了,忘記的是定義為全域性性質的陣列才會被編譯器自動初始化為0;非全域性的不會自動初始化!哎哎!!教訓。
/*poj 2960
result:ac
time:188ms
*/#include"iostream"
#include"algorithm"
using namespace std;
int s[110],k;
int sg[10010];
int getsg(int n)
; for(int i=0;s[i]<=n&&i>k,k)
if(ans==0)
cout<<"l";
else
cout<<"w";
} cout<} return 0;
}
POJ2960 SG函式,模板題
題目大意 已知一次可拿個數的種類 求出先手是否勝利,若勝利輸出w否則輸出l sg函式模板 include const int n 10008 int a 110 sg n f n void sgt int a,int y,int z 題目 include include const int n 10...
POJ2960 S Nim(博弈論 sg函式)
題意 給出一系列石子堆,現在每次只能從乙個堆中拿出固定石子數,問輸贏結果。要點 跟nim博弈很像,但是這次每次只能拿固定個數,所以要用sg函式,下面是sg函式的具體定義 sg x mex sg y y是x的後繼結點 其中mex x x是乙個自然是集合 函式是x關於自然數集合的補集中的最小值,比如x ...
POJ 2960(S Nim) 博弈論,SG函式
題意 兩個人玩遊戲,規則是有n堆石子,分別有a1,a2,an顆石頭,每次從一堆石子中取一些石子,但是可取的石子數是規定了的,必須是中的乙個,誰無法操作就輸。思路 一開始我還是不懂的,不知道怎麼選擇sg函式值。但是回去研讀了一下sg函式的定義,就明白了 相對於樸素的nim遊戲,可取的石子數是有限制的,...