1308 取數遊戲

2021-07-14 22:00:12 字數 982 閱讀 5594

description

alice想讓bob陪他去看《唐山大**》,但由於bob是個很感性的人,怕流淚不想去,但又不好意思以這個作為拒絕的理由,便提出玩乙個遊戲。

n個正整數圍成一圈,規則如下:

•兩個玩家輪流取數;

•最開始先手的玩家可以取任意乙個數x;

•從第二步開始當前玩家只能取x(上一玩家剛剛取的數)左右兩邊相鄰的數;

•直到取完所有的數,遊戲結束;

•取得較多奇數的玩家獲勝。

bob為了顯示大度,讓alice先取,但他忘了自己和alice都是絕頂聰明之人,現在alice請你幫他計算第一步有多少種取法使得最終獲得勝利。

題解:

列舉第一手取的點,把剩下的數拆成一條數列,預處理出每段區間奇數的個數,dp

f[j,l]:=max(s[l]-s[j-1]-f[j+1,l],s[l]-s[j-1]-f[j,l-1]);

**(節選):

for j:=1 to n do

if a[j] mod 2=1 then

f[j,j]:=1;

for j:=1 to n do

begin

s[j]:=s[j-1];

if a[j] mod 2=1 then s[j]:=s[j]+1;

end;

for k:=1 to n-2 do

for j:=1 to n-k do

begin

l:=k+j;

f[j,l]:=max(s[l]-s[j-1]-f[j+1,l],s[l]-s[j-1]-f[j,l-1]);

end;

f[1,n]:=s[n]-f[2,n];

if s[n] div 2+1<=f[1,n] then inc(ans);

k:=a[1];

for j:=1 to n do

a[j]:=a[j+1];

a[n]:=k;

取數遊戲 紀中 1308 蜜汁dp

alice想讓bob陪他去看 唐山大 但由於bob是個很感性的人,怕流淚不想去,但又不好意思以這個作為拒絕的理由,便提出玩乙個遊戲。n個正整數圍成一圈,規則如下 兩個玩家輪流取數 最開始先手的玩家可以取任意乙個數x 從第二步開始當前玩家只能取x 上一玩家剛剛取的數 左右兩邊相鄰的數 直到取完所有的數...

JZ高中OJ 1308 取數遊戲

time limits 1000 ms memory limits 65536 kb detailed limits description alice想讓bob陪他去看 唐山大 但由於bob是個很感性的人,怕流淚不想去,但又不好意思以這個作為拒絕的理由,便提出玩乙個遊戲。n個正整數圍成一圈,規則如...

矩陣取數遊戲

帥帥經常跟同學玩乙個矩陣取數遊戲 對於乙個給定的n m的矩陣,矩陣中的每個元素a 均為非負整數。遊戲規則如下 每次取數時須從每行各取走乙個元素,共n個。經過m次後取完矩陣內所有元素 每次取走的各個元素只能是該元素所在行的行首或行尾 每次取數都有乙個得分值,為每行取數的得分之和,每行取數的得分 被取走...