思路
手動打表, n
1 : a出1 a勝;
2 : a出2 a勝;
3 : a只能出2的整數冪&&這個數<=3,所以只能出1,2;a出1的時候,b就是2的情況,b勝;a出2的時候,b就是1的情況,b勝;
4 : a只能出2的整數冪&&這個數<=3,所以只能出1,2,4;直接拿4,a勝;
5 : a只能出2的整數冪&&這個數<=3,所以只能出1,2,4;a出1的時候,b就是4的情況,b勝;a出2的時候,b就是3的情況,a勝;(只要出現a勝的情況,就是給a了。
6 : b勝(解釋略);
...最後會發現a不管怎麼取也不會達到3的倍數,所以a贏兩次後的第三次中,不可能取完以後,留給b是對方能贏(即a能贏)的陣式;
= =、感覺就是這樣了,前幾天寫了一題這樣的,今天又寫了這樣的,就是對於這個物件,之前肯定是簡單處理出來,然後之後的結果還是依賴前面的答案,以此類推,打表也方便;
#include #include #include #include using namespace std;
typedef long long ll;
const long long inf=0x3f3f3f3f;
const int n=1e3+10;
char s[n];
int main()
{ int t,n;
scanf("%d",&t);
while(t--)
{scanf("%s",s);
int len=strlen(s);
n=0;
for(int i=0;i
51nod 1068 簡單博弈
思路 手動打表,n1 a出1 a勝 2 a出2 a勝 3 a只能出2的整數冪 這個數 3,所以只能出1,2 a出1的時候,b就是2的情況,b勝 a出2的時候,b就是1的情況,b勝 4 a只能出2的整數冪 這個數 3,所以只能出1,2,4 直接拿4,a勝 5 a只能出2的整數冪 這個數 3,所以只能出...
51nod 1067 簡單博弈
臥槽,第一次自己推推推做出來的。對於1,那麼就是a取完就好 a 對於2,只能是a拿乙個 b 對於3和4,都是a拿完 a 對於5,靠向2,a取3,b只能1 a 對於6,a取乙個的話,b就是5的情況,b贏,取3個的話,b就是3的情況,b贏,取4個的話,b就是2的情況,a贏,所以a 對於7,a取乙個的話,...
51nod 1068 Bash遊戲 V3 博弈
1068 bash遊戲 v3 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 收藏關注有一堆石子共有n個。a b兩個人輪流拿,a先拿。每次拿的數量只能是2的正整數次冪,比如 1,2,4,8,16.拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出...