4975 區間翻轉

2021-08-07 05:13:56 字數 793 閱讀 6792

小q和tangjz正在乙個長度為n的序列a_1,a_2,...,a_n上玩乙個有趣的關於區間翻轉的遊戲。小q和tangjz輪流行動

,小q先手。每次行動方玩家需要選擇乙個長度為4x+2或4x+3的區間[l,r](1<=l<=r<=n),其中x是該玩家自行選擇

的非負整數,然後將a_l,a_,...,a_,a_r翻轉,例如1 3 2 5 4翻轉會得到4 5 2 3 1。為了防止遊戲無

限進行下去,他們規定每次操作之後得到的新序列的字典序必須比操作前的序列大。最先不能採取任何行動的玩家

將會輸掉這局遊戲。假設小q和tangjz都會採取最優策略行動,請寫乙個程式判斷誰會獲得這局遊戲的勝利。

第一行包含乙個正整數n(1<=n<=50),表示序列的長度。

第二行包含n個互不相同的正整數a_1,a_2,...,a_n(1<=a_i<=n),分別表示序列中的每個元素。

輸出一行乙個字元,若小q勝利,輸出"q";若tangjz勝利,輸出"t"(不含引號)。 4

4 2 1 3t

題解:

#include"stdio.h"

#include"string.h"

#include"stdio.h"

#include"algorithm"

using namespace std;

int a[100];

int main()

}if(ans%2==0)

printf("t\n");

else

printf("q\n");

}}

bzoj 4975 區間翻轉

小q和tangjz正在乙個長度為n的序列a 1,a 2,a n上玩乙個有趣的關於區間翻轉的遊戲。小q和tangjz輪流行動,小q先手。每次行動方玩家需要選擇乙個長度為4x 2或4x 3的區間l,r,其中x是該玩家自行選擇的非負整數,然後將a l,a a a r翻轉,例如1 3 2 5 4翻轉會得到4...

bzoj 4975 區間翻轉(博弈)

time limit 1 sec memory limit 256 mb submit 176 solved 81 submit status discuss 小q和tangjz正在乙個長度為n的序列a 1,a 2,a n上玩乙個有趣的關於區間翻轉的遊戲。小q和tangjz輪流行動,小q先手。每次行...

博弈 逆序對 BZOJ4975 區間翻轉

小q和tangjz正在乙個長度為n的序列 a1,a2,a na 1,a 2,a n a1 a2 an 上玩乙個有趣的關於區間翻轉的遊戲。小q和tangjz輪流行動,小q先手。每次行動方玩家需要選擇乙個長度為 4x 24x 2 4x 2 或 4x 3 4x 3 4x 3 的區間 l,r 1 l r n...