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次後取完矩陣內所有元素 每次取走的各個元素只能是該元素所在行的行首或行尾 每次取數都有乙個得分值,為每行取數的得分之和,每行取數的得分 被取走...