吃糖果遊戲(tyvj 1567)
tyvj 1567:
博弈,題目給的資料是不超過1000位,所以這題應該找規律求解。
我是將30以內的sg值值求出來,然後規律就很容易看出來啦。
求sg值:
打出來的結果:#include <stdio.h> #include <string.h> int sg[100][100]; int getsg(int x, int y) { int i; if(sg[x][y] != -1) return sg[x][y]; bool vis[100]; memset(vis, 0, sizeof(vis)); for(i = 1; i < x; i++) vis[getsg(x - i, i)] = 1; for(i = 1; i < y; i++) vis[getsg(y - i, i)] = 1; for(i = 0; i < 100; i++) if(vis[i] == 0) break; return sg[x][y] = sg[y][x] = i; } int main (void) { memset(sg, -1, sizeof(sg)); int i, j; for(i = 0; i < 100; i++) sg[1][i] = sg[i][1] = 1; for(i = 1; i <= 30; i ++) for(j = 1; j <= 10; j++) getsg(i, j); //getsg(20, 20);//開始這樣寫,但是結果不對 for(i = 1; i <= 30; i ++) { for(j = 1; j <= 10; j++) { if(sg[i][j] != 0) printf("1 "); else printf("0 "); } printf("\n"); } return 0; }
1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
恩 除此之外還有一種思考方式,可以直接找到規律,上面sg函式是以二維來思考的,我們也可以換作一維,那麼n,就代表已經將其中一堆吃完,剩下那一堆將要被分割的糖果數是n。
當n = 1時,先手勝。
當n = 2,因為只能分成(1, 1)(勝, 勝), 所以2是必敗的。
當n = 3,可以分成(2, 1)(敗, 勝),那麼後手在面對(2, 1)這個狀態的時候肯定是吃掉2這堆,留下1這堆,因為通過前面的分析知道分割1可以保證勝利,這樣後手就會贏,所以3是必敗的。
當n = 4時, 可以分成(2, 2)(敗, 敗), (1, 3)(勝, 敗),先手肯定要將兩個必敗態留給對手,所以肯定會選擇分成(2, 2)。
當n = 5時, 可以分成(2, 3)(敗, 敗), (1, 4)(勝, 勝), 先手選擇分成(2, 3)保證對手輸。
也就是說如果n的後繼狀態中有一種分法(a, b),其中a和b都是必敗的,那麼n是必勝的,否則必敗。
………………
推個20或者30的應該就可以看出規律:
1 2 3 4 5 6 7 8 9 10
1 0 0 1 1 1 0 0 1 1
11 12 13 14 15 16 17 18 19 20
1 0 0 1 1 1 0 0 1 1
(做題的時候如果頭腦清楚思維敏捷,這應該也是不錯的方法,但是感覺就是不太適合我_(:з」∠)_)
找到規律就很好寫了~#include <stdio.h>
#include <string.h>
char a[10010], b[10010];
int yes(char x)
{
if(x == '1' || x == '4' || x == '5' || x == '6' || x == '9' || x == '10')
return 1;
return 0;
}
int f(char x)
{
if(x == '2' || x == '3' || x == '7' || x == '8')
return 0;
return 1;
}
int main (void)
{
while(scanf("%s %s", a, b) != EOF)
{//只要判斷最後一位
int len1 = strlen(a), len2 = strlen(b);
if(yes(a[len1 - 1]) || yes(b[len2 - 1]))
printf("Matrix67\n");
else
{
if(f(b[len2 - 1]) || f(a[len1 - 1]))
printf("Matrix67\n");
else
printf("Shadow\n");
}
}
return 0;
}
相關推薦
吃糖果遊戲(tyvj 1567)
tyvj 1567: 博弈,題目給的資料是不超過1000位,所以這題應該找規律求解。 我是將30以內的sg值值求出來,然後規律就很容易看出來啦。 求sg值: #include <stdio.h> #include <string.h> int s
吃糖果(自創小遊戲,不喜勿噴)
#include <stdio.h> #include <stdlib.h> #include <windows.h> #include <string.h> #include <time.h> #include &
hdu_1205 吃糖果
long long sum tdi main ans != true can ret //如果 剩下的人+1 > 最大的人 就是Yes 不然 no#include<cstdio> int q,a[1000010],n,x,maxn; long long s
(遞歸)1944:吃糖果
htm pan clas return 回來 main tro cin spa 描述 名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名(盒內共有 N 塊巧克力,20 > N >0)。 媽媽告訴名名每天可以吃一塊或者兩塊巧克力。假設名名每天都吃巧克力,問
吃糖果
輸出 clas 給定 時間 -s for all tdi space 吃糖果 鏈接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1193 時間限制: 1000 ms 內存限制: 65536 KB提交數: 1
國產“吃雞”遊戲獲監管放行,可《絕地求生》卻活不下去了
絕地求生《絕地求生》全球走紅之後,國產遊戲廠商迅速跟上,目前最為熱門的四大國產“吃雞遊戲”,除《小米槍戰》內測時間在10月18日外,11月初的一周時間內,網易的《荒野行動》《終結者2》啟動內測,騰訊的《光榮使命:使命行動》開啟預約。然而,由於遊戲鼓勵玩家通過暴力殺戮其他玩家,過程較為血腥,因此國家新聞出版廣電
HDU - 1205 吃糖果
class bits space 是否 std div ont ase 壓力 因為某場比賽某位同學打表沒有打對,而且因為在上一場訓練賽中被寫進了題目裏,他悲痛欲絕,不光在群裏把昵稱改成了 不會打表且沒有去過九裏校區的xxxxx,而且希望通過吃糖來緩解自己的壓力。他非常挑食,
如何禁止吃雞遊戲,如何屏蔽局域網用戶玩絕地求生、終結者2、荒野行動等手遊?
alt 圖片 創新 記錄 png 文件 www. 通過 手遊 《絕地求生》(PUBG) 是一款突破性的戰術競技類遊戲,憑借其獨特創新的玩法模式,寫實風格帶來的代入感和沈浸感深受玩家喜愛。目前,吃雞類遊戲深受用戶喜愛,也湧現了一大批的同款端遊和手遊。對於上網行為管理來說,我們
遊戲公司靠外掛賺得盆滿缽滿?吃雞遊戲封號100年事件還能這麽看
小工具 函數 ima -h 包括 nor 設置 比較 絕地求生 據報道,2月3日晚,虎牙簽約的XZ戰隊隊長星魂在直播《絕地求生》途中,被藍洞官方“實錘”開掛,直接封號100年。100年太久,估計等不到解封的日子了。不過有一種更為有趣的說法是,藍洞官方在吃雞遊戲上封號,力度之
HDU--1205--吃糖果
HOHO,終於從Speakless手上贏走了所有的糖果,是Gardon吃糖果時有個特殊的癖好,就是不喜歡將一樣的糖果放在一起吃,喜歡先吃一種,下一次吃另一種,這樣;可是Gardon不知道是否存在一種吃糖果的順序使得他能把所有糖果都吃完?請你寫個程式幫忙計算一下。 Input 第一
搬瓦工香港測評,延遲低/1G頻寬/穩定性高,吃雞遊戲加速器
搬瓦工香港是搬瓦工目前提供的唯一一個亞洲機房,香港PCCW線路,三網直連,延遲一般都在50ms左右,1G頻寬,而且非常穩定,不掉包,不跳ping,非常適合做遊戲加速器,以及對速度要求比較高的建站使用者。 原文:搬瓦工香港PCCW線路測評 效能/ping延時/路由/速度 & 搬瓦工香港做遊
吃雞遊戲(18.11.24)
吃雞遊戲 Description xxx 吃雞成癮。為此他決定逃課吃雞!但是學校有規定,曠課到一定次數,是不給予期末考的資格的。因此 xxx 決定每門課最多逃兩次。現在告訴你,一個學期有 nnn 節課程,第 iii 節課的科目是 sis_isi,時間為 tit_iti。你需要告訴
HDU 1205 吃糖果(鴿籠原理)
鴿籠原理(也稱抽屜原理) 簡單的表述如下,這個原理看起來非常通俗,好像是在說一句廢話一樣,然而數學就是這樣,總是需要證明一下。 證明是用反證法:假設每個籠子只有一個鴿子,那麼必定有一個鴿子不在籠子裡,和原命題衝突。 另
吃雞遊戲跑毒和倍鏡開發
玩了幾天的吃雞遊戲,開始這個遊戲不感冒,現在也覺得不如王者農藥好玩。我屬於佛系吃雞,從落地拿上裝備開始就躲在房間裡不出門直到毒圈縮小。所以基本每次都會被毒圈給毒到。我就突發奇想做了一個毒圈的功能,還有高倍。下面是正文: 先上圖看看效果,主要是功能,至於美工嘛,哈哈一看就是出自
小樂樂吃糖果
題目描述 小樂樂是一個比較喜歡吃糖豆的小孩子,小樂樂的哥哥大樂樂也同樣愛吃糖豆。 作為一個小孩子,他們永遠覺得誰吃掉了最後一個糖豆,誰吃的糖豆最多。 為了公平起見小樂樂與大樂樂商量吃糖豆的規則如下: 1. &nb
Home11月24:吃雞遊戲
Description xxx 吃雞成癮。為此他決定逃課吃雞!但是學校有規定,曠課到一定次數,是不給予期末考的資格的。因此 xxx 決定每門課最多逃兩次。現在告訴你,一個學期有 n 節課程,第 i節課的科目是 si,時間為 ti。你需要告訴 xxx 這個學期他逃課吃雞的最大時間是多少
The Arena——區塊鏈上的吃雞遊戲?
細數當前的區塊鏈遊戲,型別上以收藏類和策略類為主,即便很多遊戲也加入了戰鬥元素,也大多都是回合制戰鬥的形式。那麼有沒有一款能夠讓人精神高度集中,甚至血脈噴張的即時戰鬥型別的區塊鏈遊戲呢?今天,SpiderStore就帶大家瞭解這樣一款遊戲——The Arena。 登陸游戲後,我們會在遊戲大廳
牛客網——吃糖果
題目描述 名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名(盒內共有 N 塊巧克力,20 > N >0)。 媽媽告訴名名每天可以吃一塊或者兩塊巧克力。 假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。 例如: 如果N=1,則名名第1天就吃掉它,共有1種方案;
演算法筆記 — 吃糖果
題目連結:http://codeup.cn/problem.php?cid=100000583&pid=0 題目描述 名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名(盒內共有 N 塊巧克力,20 > N >0)。 媽媽告訴名名每天可以吃一
python - 烏龜吃魚遊戲
#pygame 可以設定圖形,這裡不做講解。 遊戲程式設計:按以下要求定義一個烏龜類和魚類並嘗試編寫遊戲 假設遊戲場景為範圍(x,y)為0<=x<=10,0<=y<=10 遊戲生成1只烏龜和10條魚 它們的移動方向均隨機 烏龜的最大移動能力為2(它可以隨機選擇1還是2