1.數的劃分 2星
1 #include2view codeusing
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 }
2.單詞接龍 3星
1 #include2view codeusing
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 }
使用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揹包那樣逆推,就不會重複選...