吃糖果是永恆不變的話題(博弈論)(北理16校賽)

2021-07-11 20:36:46 字數 1373 閱讀 1034

時間限制1秒 記憶體限制64m

題目描述:

teresa 和 eureka 玩遊戲,有n個糖果 ( 1 <= n <= 1000000 且n為奇數 ) ,兩人輪流取糖果吃,可以吃1、2、3個糖果,不能不吃,誰最後總共吃了奇數塊糖果就算贏,輸的那一方要請贏的人看憤怒的小鳥大電影,假設兩人像pq那樣機智(咦pq是誰?噴泉?),問對於任意合法的 n ,先手能否勝利?

輸入格式:

乙個整數t,代表用例組數。

每組用例一行,乙個整數 n ( 1 <= n <= 1000000 且n為奇數 ) ,表示初始有 n 個糖果。

輸出格式:

對於每組用例,若先手必勝輸出「first win」,否則輸出「first lost」。

樣例輸入:

3135樣例輸出:

first win

first win

first lost

題目大意:

有一堆奇數個糖果,每個人可以選擇拿1,2,3個,最後有奇數個糖果的獲勝,問有沒有先手必勝策略

解題思路:

dp[i][j]為還剩i個糖果時,手裡有奇數或者偶數(j=1奇,0偶)是否有必勝策略(1有,0無)

dp[i][j]=sigema(dp[i-k][對手奇偶]==0)>0(k=1,2,3)就是說在自己可以取到的狀態裡有乙個是對手的必敗態,自己就必勝,否則自己必敗

#include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

typedef unsigned long long ull;

const int inf=0x3f3f3f3f;

#define clr0(a) (memset(a,0,sizeof(a)))

#define clr1(a) (memset(a,-1,sizeof(a)))

#define clrf(a) (memset(a,0x3f,sizeof(a)))

const int maxn=0;

const int maxm=0;

int dp[1000050][2];

int main()

} op=!op;

for(int j=1;j<=3;j++)}}

int n;

int t;

scanf("%d",&t);

while(t--)

return 0;

}

永恆不變的內容營銷不利於seo

永恆不變的內容營銷不利於seo 如今,內容營銷已是企業網路營銷策略的核心,不管是搜尋營銷,社會化 營銷,還是移動網際網路的營銷,變得只是媒介的載體 傳播的路徑,不變的是內容。做內容營銷離不開seo優化 小明seo 所以說,網際網路營銷本質上都是內容營銷,那我們怎樣能讓內容營銷的效果最大化呢?今天,小...

沒有永恆不變的商機,知識付費專案副業不例外

但是現在付費使用者很多人只是買個心安,而並沒有抱著學習知識的目的,其開啟率和完課率也比較堪憂。歸根結底還是知識付費從一開始就走偏了,羅振宇們所宣揚的 代你讀書 模式開始到後來的各種 速成 講義,順應了人性學習的懶惰,省略了學習過程直接通過聊天方式給出答案或者結論,以便於在變幻不定的時代洪流之中尋找到...

吃糖果的問題hdu problem1205

題目描述 hoho,終於從speakless手上贏走了所有的糖果,是gardon吃糖果時有個特殊的癖好,就是不喜歡將一樣的糖果放在一起吃,喜歡先吃一種,下一次吃另一種,這樣 可是gardon不知道是否存在一種吃糖果的順序使得他能把所有糖果都吃完?請你寫個程式幫忙計算一下。輸入 第一行有乙個整數t,接...