1. 程式人生 > >hdu3389 Game-----博弈想法題 難

hdu3389 Game-----博弈想法題 難

Game

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 133    Accepted Submission(s): 90


Problem Description Bob and Alice are playing a new game. There are n boxes which have been numbered from 1 to n. Each box is either empty or contains several cards. Bob and Alice move the cards in turn. In each turn the corresponding player should choose a non-empty box A and choose another box B that B<A && (A+B)%2=1 && (A+B)%3=0. Then, take an arbitrary number (but not zero) of cards from box A to box B. The last one who can do a legal move wins. Alice is the first player. Please predict who will win the game. Input The first line contains an integer T (T<=100) indicating the number of test cases. The first line of each test case contains an integer n (1<=n<=10000). The second line has n integers which will not be bigger than 100. The i-th integer indicates the number of cards in the i-th box. Output For each test case, print the case number and the winner's name in a single line. Follow the format of the sample output. Sample Input 2 2 1 2 7 1 3 3 2 2 1 2 Sample Output Case 1: Alice Case 2: Bob Author
[email protected]
Source Recommend notonlysuccess

1 3 4這三個位置無法移到其他位置。

 每個位置移到下個位置後奇偶性改變,模3結果也有固定變化(0->0,1->2,2->1),比如模3為1的奇數可以移到模3為2的偶數也可以移到模3為1的奇數,但最終只可能移到模3為1的奇數,也就是1(因為1、3、4中沒有模3為2的),其他型別的數的最終位置也可如此得到。由於移到的最終位置是固定的,本身的奇偶性也是固定的,那麼移動步數的奇偶性也是固定的。

容易得出模6為0、2、5的位置移動步數為奇,其餘為偶。

 也容易得出移動位置是偶數步的位置上的牌數是無關緊要的:因為不論對方將偶數步位置上的牌作如何操作,我都可以把他移動的牌再往後移動一步。也就是說偶數步上的位置的牌我可以保證兩個人對其的運算元是偶數次,從而不影響到奇數步位置上的牌的狀態。

那奇數步位置上的牌呢?臨時再來個無關緊要的結論:奇數步位置上的牌可以直接移到最終位置

一、如果直接把某一奇數步位置上的某些牌移到1、3、4這些終點位置,就相當於取石子游戲中從一堆石子裡取走一些石子。

二、如果把一些牌移到偶數步位置,之前說了偶數步位置上的牌可以無視的,我們也可以把它看作是從這堆石子裡取走了一些石子。

所以就是把奇數步位置上的異或起來就好了。

相關推薦

hdu3389 Game-----博弈想法

Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 133    Accepted Submission(

poj 樓天成的男人八系列 A New Stone Game 博弈問題

第一,只有一堆x,第一個人直接全部取走就勝利了.(顯然x,y,y的情況也是第一人勝,所以忽略相等的石頭); 第二,x,y的形式(這裡不妨假設遞增,下同).第一人從第二堆中取走(y-x)個石頭,這樣兩

2017-5-14 湘潭市賽 Longest Common Subsequence 想法

pre ati 個數 離散 code output iterator n) ret Longest Common Subsequence Accepted : 7 Submit : 66 Time Limit : 3000 MS M

【插頭dp】CDOJ1690 這是一道比CCCC簡單的簡單

eof pri mes main 一道 sizeof () brush mage 最裸的插頭dp,可參見大白書。 #include<cstdio> #include<cstring> using namespace std; #define

UVA 12293 - Box Game(博弈)

can top ice con receive uva eight word-wrap data UVA 12293 - Box Game 題目鏈接 題意:兩個盒子,一開始一個盒子有n個球。一個僅僅有1個球,每次把球少的盒子中球消掉,把多的拿一些球給

poj1753Flip Game【刷計劃】

not osi ack accepted scrip flag notes ram white Flip Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions:

B. Sleepy Game 博弈搜索

spa body 不能 std 16px clas ces for .com 題意:給一個有向圖和起點,然後只有一名選手,這名選手可以隨意挪動棋子,最終不能動的時候走過的邊為奇數邊為Win並輸出路徑,否則如果有環輸出Draw,否則輸出Lose; 題目鏈接 知道狀態數最多

HDU - 5818 Joint Stacks 想法 關鍵

warn set mod swa war std ORC nbsp pos http://codeforces.com/problemset/problem/669/D 題意:n個數1~N圍成一個圈。q個操作包括操作1:輸入x, 所有數右移x。操作2:1,2位置上的數(sw

[POJ1678] I Love this Game! - 博弈,DP

memory Go lin set 一個 pro nta first exactly I Love this Game! Time Limit: 1000MS Memory Limit: 10000K Total Submissions:

多校 HDU-6312 Game (博弈)

集合 pan pid 都是 alice .cn 不知道 鏈接 span 題目鏈接: http://acm.hdu.edu.cn/showproblem.php?pid=6312 Alice和Bob做一個博弈遊戲, 一個集合中的數為1 到 n,一個人每輪可以從中移走一個數

POJ2505 A multiplication game(博弈)

names fine eof 一個 fin sla sin 是否 long 題意 開始時$p = 1$,每次可以乘$2 - 9$,第一個使得$p \geqslant n$的人贏 問先手是否必勝 $1 <n <4294967295$ Sol 認真的推理一

【CodeForces - 864A】Fair Game(水

Petya and Vasya decided to play a game. They have n cards (n is an even number). A single integer is written on each card. Before t

HDU3951 建立對稱局勢【博弈

Coin Game After hh has learned how to play Nim game, he begins to try another coin game which seems much easier.  The game goes like this

BZOJ1443-[JSOI2009]遊戲Game-博弈+二分圖必匹配點

寫在前面 並沒有什麼想說的,但是要保持格式=w= 題目 BZOJ1443傳送門 看題可戳傳送門 解法 其實和 BZOJ2463 思路差不多 在棋盤上走,不染個色就虧了對吧 =w= (思路來著Menci) 那麼我們黑白染色一下,然後跑有效格子的最大

Gym-101177B 遞迴想法

題意:一串無限長的0,有m個操作(m<2e5),在每個x後面加一個y,最後一次查詢L--R的數字,(L,R<1e6) 思路:看起來非常複雜,實際上突破口在於L,R很小,雖然操作複雜,直接模擬會單次操作on,但是我們可以考慮一個一個字元構造,實際上就是一個遞迴的過程。具體方法可以大

POJ 2484 A Funny Game 博弈思想:複製對手操作

傳送門 這一題如果先手不能取完的話,後手一定可以通過取 1 個或者 2 個把局勢變成兩個對稱的局面,後面每一步都可以複製對方的操作,最終自己勝利。 #include <bits/stdc++.h> using namespace std; int main() { in

HDU 2147 kiki's game 博弈找規律

傳送門 這個自己畫一下 NP 圖看看就知道,只有行列都是奇數的時候才會輸,否則都是贏 #include <bits/stdc++.h> using namespace std; int main() { int n, m; while (cin >> n

hdu 5926 Mr. Frog’s Game(水

一個連連看遊戲,判斷第一次是否有可以消除的方塊。 6個for迴圈,分別判斷4個最外面的邊和裡面的相鄰的情況就行了 #pragma GCC optimize(2) #include<stdio.h> #include<algorithm>

Codeforces Round#519 D. Mysterious Crime【想法

【題意】:給你m個長度為n的排列,m<=10,n<=100000,讓你求有多少種不同的公共子串。 【題解】:就目前而言,如果是在多個字串中求不同的公共子串個數,還不是一個能在較低複雜度下就能解決的問題,所以這道題一定是有它自己特殊的地方:排列(permutaio