2463: [中山市选2009]谁能赢呢? Codeforces Round #429 (Div. 2) B. Godsend noip三国游戏...
Description
小明和小紅經常玩一個博弈游戲。給定一個n×n的棋盤,一個石頭被放在棋盤的左上角。他們輪流移動石頭。每一回合,選手只能把石頭向上,下,左,右四個方向移動一格,并且要求移動到的格子之前不能被訪問過。誰不能移動石頭了就算輸。假如小明先移動石頭,而且兩個選手都以最優策略走步,問最后誰能贏?Input
輸入文件有多組數據。 輸入第一行包含一個整數n,表示棋盤的規模。 當輸入n為0時,表示輸入結束。?
Output
對于每組數據,如果小明最后能贏,則輸出”Alice”,?否則輸出”Bob”,?每一組答案獨占一行。
Sample Input
20
Sample Output
AliceHINT
?
對于所有的數據,保證1<=n<=10000。 --------------------------------- 解:n為偶時棋盤一定可以被若干個1*2的骨牌覆蓋
先手每次都是從一塊骨牌的一端走向另一端
后手總是走向另一塊骨牌,所以先手必勝
n為奇時先手走完一步后又能被若干個1*2的骨牌覆蓋了
所以先后手互相轉變,后手必勝。
借鑒Brian551:
http://blog.csdn.net/Brian551/article/details/78065367
#include<cstdio> int main() {int n;while(true){scanf("%d",&n);if(!n) break;if(n%2==0) printf("Alice\n");else printf("Bob\n");}return 0; } View Code嘻嘻,學學簡單的博弈論(no use sg);
=============== B. Godsend time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard outputLeha somehow found an array consisting of?n?integers. Looking at it, he came up with a task. Two players play the game on the array. Players move one by one. The first player can choose for his move a subsegment of non-zero length with an odd sum of numbers and remove it from the array, after that the remaining parts are glued together into one array and the game continues. The second player can choose a subsegment of non-zero length with an even sum and remove it. Loses the one who can not make a move. Who will win if both play optimally?
InputFirst line of input data contains single integer?n?(1?≤?n?≤?106) — length of the array.
Next line contains?n?integers?a1,?a2,?...,?an?(0?≤?ai?≤?109).
OutputOutput answer in single line. "First", if first player wins, and "Second" otherwise (without quotes).
Examples input 41 3 2 3 output First input 2
2 2 output Second Note
In first sample first player remove whole array in one move and win.
In second sample first player can't make a move and lose.
answer :一個人取奇數,另一個人取偶數
?判斷奇偶;
借鑒Brian551(too);
#include<cstdio> int main() {int n;scanf("%d",&n);int flag=0;int x;for(int i=1;i<=n;i++){scanf("%d",&x);if(!flag&&x%2==1) flag=1;}if(flag) printf("First\n");else printf("Second\n");return 0; } View Code?
?
==============
?
三國游戲
?
描述
小涵很喜歡電腦游戲,這些天他正在玩一個叫做《三國》的游戲。?
在游戲中,小涵和計算機各執一方,組建各自的軍隊進行對戰。游戲中共有N 位武將(N為偶數且不小于4),任意兩個武將之間有一個“默契值”,表示若此兩位武將作為一對組合作戰時,該組合的威力有多大。游戲開始前,所有武將都是自由的(稱為自由武將,一旦某個自由武將被選中作為某方軍隊的一員,那么他就不再是自由武將了),換句話說,所謂的自由武將不屬于任何一方。游戲開始,小涵和計算機要從自由武將中挑選武將組成自己的軍隊,規則如下:小涵先從自由武將中選出一個加入自己的軍隊,然后計算機也從自由武將中選出一個加入計算機方的軍隊。接下來一直按照“小涵→計算機→小涵→??”的順序選擇武將,直到所有的武將被雙方均分完。然后,程序自動從雙方軍隊中各挑出一對默契值最高的武將組合代表自己的軍隊進行二對二比武,擁有更高默契值的一對武將組合獲勝,表示兩軍交戰,擁有獲勝武將組合的一方獲勝。
已知計算機一方選擇武將的原則是盡量破壞對手下一步將形成的最強組合,它采取的具體策略如下:任何時刻,輪到計算機挑選時,它會嘗試將對手軍隊中的每個武將與當前每個自由武將進行一一配對,找出所有配對中默契值最高的那對武將組合,并將該組合中的自由武將選入自己的軍隊。
下面舉例說明計算機的選將策略,例如,游戲中一共有6 個武將,他們相互之間的默契值如下表所示
雙方選將過程如下所示:
小涵想知道,如果計算機在一局游戲中始終堅持上面這個策略,那么自己有沒有可能必勝?如果有,在所有可能的勝利結局中,自己那對用于比武的武將組合的默契值最大是多少? 假設整個游戲過程中,對戰雙方任何時候均能看到自由武將隊中的武將和對方軍隊的武將。為了簡化問題,保證對于不同的武將組合,其默契值均不相同。
格式
輸入格式
共N 行。
第一行為一個偶數N(N≤ 500),表示武將的個數。
第2 行到第N 行里,第(i+1)行有(N?i)個非負整數,每兩個數之間用一個空格隔開,表示i 號武將和i+1,i+2,??,N 號武將之間的默契值(0 ≤ 默契值≤ 1,000,000,000)。
輸出格式
共1 或2 行。
若對于給定的游戲輸入,存在可以讓小涵獲勝的選將順序,則輸出1,并另起一行輸出。
所有獲勝的情況中,小涵最終選出的武將組合的最大默契值。?
如果不存在可以讓小涵獲勝的選將順序,則輸出0。
樣例1
樣例輸入1
6 5 28 16 29 27 23 3 20 1 8 32 26 33 11 12 Copy樣例輸出1
1 32 Copy樣例2
樣例輸入2
8 42 24 10 29 27 12 58 31 8 16 26 80 6 25 3 36 11 5 33 20 17 13 15 77 9 4 50 19 Copy樣例輸出2
1 77 Copy限制
每個測試點1s。
提示
樣例1說明:
首先小涵拿走5 號武將;計算機發現5 號武將和剩下武將中的4 號默契值最高,于是拿走4 號;小涵接著拿走3 號;計算機發現3、5 號武將之一和剩下的武將配對的所有組合中,5 號和1 號默契值最高,于是拿走1 號;小涵接著拿走2 號;計算機最后拿走6 號。在小涵手里的2,3,5 號武將中,3 號和5 號配合最好,默契值為32,而計算機能推出的最好組合為1 號和6 號,默契值為27。結果為小涵勝,并且這個組合是小涵用盡所有方法能取到的最好組合。
來源
NOIP2010普及組
answer:
選每個武將的第二大;
必勝,so print "1\n%d";
#include<cstdio> #include<cstring> int map[510][510]; int main() {int n;scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)scanf("%d",&map[i][j]),map[j][i]=map[i][j];int ans=0;for(int i=1;i<=n;i++){int maxx=0,maxx2=0;for(int j=1;j<=n;j++){if(map[i][j]>maxx) maxx2=maxx,maxx=map[i][j];else if(maxx2<map[i][j]) maxx2=map[i][j];}if(maxx2>ans) ans=maxx2;} printf("1\n%d\n",ans);return 0; } View Code=============
water:
1.vijos 1281?Easy Selection
?
---END-----
轉載于:https://www.cnblogs.com/12fs/p/7594021.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的2463: [中山市选2009]谁能赢呢? Codeforces Round #429 (Div. 2) B. Godsend noip三国游戏...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos7特性——systemd
- 下一篇: 【转】JavaScript事件顺序