dp專題題目記錄

2022-06-27 13:30:10 字數 1201 閱讀 9086

1.數的劃分    2星

1 #include2

using

namespace

std;

3#define ll long long

4#define eps 1e-6

5int ans=0;6

intn, k;

7void dfs(int id, int sum, int

val)813

for(int i = val; i <= n; i++)

*/18

if(id==k&&sum==n)

1923

24if(id>=k||sum>n)

25return;26

27for(int i = val; i <= n; i++)32}

3334

intmain()

3541

return0;

42 }

view code

2.單詞接龍   3星

1 #include2

using

namespace

std;34

struct

nodec[22];9

intn,maxn;

1011

void dfs(int x,int len)23}

24if(l!=c[x].len) //

說明單詞i被單詞x包含

25 t=0;26

if(t) //

說明單詞x與單詞i相連且不被包含

27 32}

33}34}

35}36 maxn=max(maxn,len);37}

3839

intmain()

45 cin>>c[0].s;//

成語接龍首字母

46 c[0].len=strlen(c[0

].s);

4748 dfs(0,c[0

].len);

49 cout

50 }

view code

使用dfs的情況:搜尋值最大的方案

方案由幾個x組成,x又有n種方案,對x進行dfs

void dfs(int

x)

數字DP專題

hdu 2089 不要62 hdu 3555不能出現連續的49 uestc 1307相鄰的數差大於等於2 hdu 3652 出現13,而且能被13整除。hdu 3709平衡數 light oj 1140兩個數之間的所有數中零的個數。lightoj 1032 二進位制數中連續兩個 1 出現次數的和 c...

dp專題總結

1 做題感覺 大部分時候看到題感覺一頭霧水,在明確告訴這是動態規劃的題時會刻意往這方面想,縮小問題規模。如果沒說的話,可能根本不會朝這方面去想。感覺好難做起來理解起來都很費勁,專題中有很多題是稍微變了一下,就暈了,會在各方面細節出問題。就像登山問題和合唱團問題,感覺他們一模一樣,樣例也通過了,就是過...

樹形dp專題

1.cf 804 c 最大團染色 dfs 題目中有個條件,相同的冰淇淋所在的節點是連通的,這個很重要 那麼我們就對這個樹t進行dfs,同時給g染色就行了 最大團染色xjb寫 2.xidian 1070 樹形dp dp i j 表示以i為根選j個節點的最大值 注意 類似於01揹包那樣逆推,就不會重複選...