2016年2月25日 星期四

[HOJ 257][POI 19 Stage 3][Interactive]Bidding (題目備份)

HOJ生病惹QQ,因此在此悼念昔日光彩
題目備份,請參考~
題解在這裡
敬告:目前HOJ主機也許進入瀕死狀態了,常常無預警跳電。請看到這則公告的人能注意備份自己的資料,感謝。
至於主機壞掉以後會如何目前並沒有任何規劃.. 
Submit  Ranklist

Problem : 257 - [Interactive]Bidding

Problem Statistics
Solved Member: 13  Submission: 121  User Tried: 13
Problem:
請在程式碼加入#include "interactive/257.h"回答問題。

Alois 和 Byteasar 正在玩一個投標遊戲,他們試著用石頭來競標。這兩個玩家可以依序動作, Alois 最先,接著換 Byteasar 然後再換 Alois ,以此類推。每一次動作可以影響到 pot 或 stack 兩個地方的石頭數量。剛開始 pot 裡有一顆石頭,stack裡面沒有石頭。每個玩家可以做以下三種動作:

  • 將 pot 裡的石頭變成兩倍
  • 將 pot 裡的石頭變成三倍
  • 略過

當一個玩家略過此步驟,目前在 pot 裡的石頭都會移到stack中 (這是使 stack 石頭數量增加的唯一方法),並且 pot 中的石頭數量恢復為 1。若某個人使得 stack 中的石頭數目大於等於 就是輸家。另外若輪到某人時石頭總數大於等於 則該次移動只能pass,必定輸。

Alois 常常輸給Byteasar 寫的程式,因此他決定請你來幫忙寫個程式擊敗 Byteasar。
Task:
函式庫中將提供以下的函式

 • Init – 回傳數字 n。你必須要在程式一開始呼叫這個函式。
  o C/C++: int Init();
 • Alois – 回傳你要做的動作 x,若 x=1 代表略過,x=2 代表將 pot 石頭變成兩倍, x=3 代表將石頭數變成三倍。
  o C/C++: void Alois(int x);
 • Byteasar – 回傳一個數字,代表電腦所做的動作。 x=1 代表略過, x=2 為將 pot 石頭變成兩倍, x=3 代表變成3倍。
  o C/C++: int Byteasar();

在呼叫 Init 程式以後,你必須輪流呼叫 Alois 以及 Byteasar 函式。當有任何一個人輸的時候將自動結束程式。注意禁止使用標準輸入以及輸出。


在所有的測試資料中都保證有必勝的方案。若你的程式贏得勝利,才會得到該題的分數。

在所有的測試資料中滿足,1 ≤ n ≤ 30000。並且至少 50% 的測是資料滿足 n ≤ 50。 
Input:
No Input.
Output:
No Output.
HINT:
範例:
C/C++回傳值stackpot解釋
n = Init();1501n=15
Alois(2);-02你將Pot * 2
Byteasar();204程式將 pot 變成2倍
Alois(3);-012你將 pot 變成 3 倍
Byteasar();1121程式將 12 個石頭移到stack,pot只剩1顆石頭
Alois(2);-122你將 pot * 2
Byteasar();3126程式將 pot 變成3倍
Alois(1);-181Pot以及stack的石頭總數超過 15。你將pot的石頭移到stack


上述的範例中每個步驟是對的,但是你輸了,因此不會得到任何分數。

當 n=15 的時候Alois 有方法可以贏過 Byteasar。
Source:
POI 19 Stage 3
Problem Setter
hanhan0912
Testdata:
TestTimeMemoryScore
01000ms131072kb
1-ocen1000ms131072kb
13000ms131072kb5
2-ocen1000ms131072kb
23000ms131072kb5
3-ocen5000ms131072kb
33000ms131072kb5
43000ms131072kb5
53000ms131072kb5
63000ms131072kb5
73000ms131072kb5
83000ms131072kb5
93000ms131072kb5
103000ms131072kb5
113000ms131072kb5
123000ms131072kb5
133000ms131072kb5
143000ms131072kb5
153000ms131072kb5
163000ms131072kb5
173000ms131072kb5
183000ms131072kb5
193000ms131072kb5
203000ms131072kb5

沒有留言:

張貼留言

歡迎留言或問問題~
若您的留言中包含程式碼,請參考這篇
如果留言不見了請別慌,那是因為被google誤判成垃圾留言,小莫會盡快將其手動還原