題目 stupid 愚蠢的礦工

2022-05-31 13:15:08 字數 1296 閱讀 1077

背景stupid 家族得知在hyc家的後花園裡的**花壇處,向北走3步,向西走3步,再向北走3步,向東走3步,再向北走6步,向東走3步,向南走12步,再向西走2步( - -||)就能找到寶藏的入口,而且寶藏都是藏在山里的,必須挖出來,於是stupid家族派狗狗帶領礦工隊去挖寶藏.(hyc家的寶藏被狗狗挖走後有什麼感想?)

描述這個寶藏的製造者為了掩蓋世人耳目,他做的寶藏是沒有出口,只有入口,不少建造寶藏的人都死在裡面.現在知道寶藏總共有n個分岔口,在分岔口處是有財寶的,每個寶藏點都有乙個財富值.狗狗只帶了m個人來,而且為了安全起見,在每個分岔口,必須至少留乙個人下來,這個留下來的人可以挖寶藏(每個人只能挖乙個地方的寶藏),這樣才能保證不會迷路,而且這個迷宮有個特點,任意兩點間有且只有一條路可通.狗狗為了讓他的00開心,決定要盡可能地多挖些寶藏回去.現在狗狗的圈叉電腦不在身旁,只能求救於你了,你要知道,狗狗的終身幸福就在你手上了..(狗狗ps:00,你不能就這樣拋棄偶……)

第1行:兩個正整數n,m .n表示寶藏點的個數,m表示狗狗帶去的人數(那是一條懶狗,他自己可不做事)。(n<=1000,m<=100)

第2行:n個整數,第i個整數表示第i個寶藏的財富值.(保證|wi|輸出狗狗能帶回去的寶藏的價值。

wa幾次了。。。。。。。

典型的樹狀dp

另外,沒想到cin與scanf有這麼大的差距

**實現:

view code

1 #include

2using

namespace std;34

int n,m,son[1001][1001]=,f[1001][3]=,z[1001][101]=,a[1001];56

void dfs(int k)

18 }

1920

int fenpei(int k,int sum)

32if(z[k][sum]33 z[k][sum]=max;

34return z[k][sum];

35 }

3637

38int main()

39 51

52 dfs(son[0][1]);

5354

//for(i=1;i<=n;i++)

55//

z[i][1]=a[i]; 這個錯誤害的我查了幾個小時的錯,快崩潰了!

5657 cout<0][1],m)<58

59 system("

pause

");60

return

0;61

62 }

rqnoj28 Stupid 愚蠢的寵物

題目描述 背景大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 描述狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n 1條路連線這n個節點,節點的編號是1...

PID28 Stupid 愚蠢的寵物

題鏈 題目描述 背景大家都知道,sheep有兩隻可愛的寵物 乙隻叫神牛,乙隻叫神菜 有一天,sheep帶著兩隻寵物到狗狗家時,這兩隻可愛的寵物竟然迷路了 描述狗狗的家因為常常遭到貓貓的攻擊,所以不得不把家裡前院的路修得非常複雜。狗狗家前院有n個連通的分叉結點,且只有n 1條路連線這n個節點,節點的編...

愚蠢的礦工 樹形動態規劃

一 思路 題目是多叉樹,原本想 0 0 0 3 0 1 2 0 2 1 0 3 1 但是要列舉的情況太多,就採用轉換為二叉樹的方法 1 2 3 1 讀進多叉樹tree 1001 1001 tree i 0 來記錄本節點的孩子個數 tree i j 表示節點i的第j個子節點的編號 2 轉化為二叉樹bi...