Usaco2010 Jan 輪流吃草

2021-09-28 07:39:07 字數 586 閱讀 8979

乙個類似於博弈的dp

我們要保證乙個人最優,那麼我們有兩種選擇

當前點拿,我們從上次取的權值和加當前權值轉移

不拿的話,第二個人也拿不了,繼承原來的值

#include

#include

#include

#include

#include

using

namespace std;

const

int maxn =

700007

;typedef

long

long ll;

ll f[maxn]

,val[maxn]

,g[maxn]

,n;int

main()

else

} ll ans1=

0,ans2=0;

for(

int i=

1;i<=n;i++)}

printf

("%lld %lld"

,ans1,ans2)

;return0;

}

Usaco2008 Jan 電話網路

一道比較神的樹形dp,恕我太菜,一開始想的是三維的。實際上並不需要三維,只需要用0,1,2表示即可 d p u 0 dp u 0 dp u 0 表示當前點不放,他的某乙個兒子覆蓋他的代價 d p u 1 dp u 1 dp u 1 表示當前點放,他的子樹也被覆蓋的代價 d p u 2 dp u 2 ...

Usaco2008 Jan 電話網路

第2.n行 每行為2個用空格隔開的整數a b,為兩塊相鄰草地的編號 5 1 35 2 4 33 5 輸入說明 farmer john的農場中有5塊草地 草地1和草地3相鄰,草地5和草地2 草地 4和草地3,草地3和草地5也是如此。更形象一些,草地間的位置關係大體如下 或是其他類似的形狀 輸出2 輸出...

USACO22 JAN 做題記錄

暴力題。include includeusing namespace std const int maxk 27 int ans1,ans2 int cnt maxk ok 4 4 string s 4 t 4 int main for int i 1 i 3 i for int j 0 j 3 j...