poj 1849 貪心 樹形dp

2021-06-16 17:17:14 字數 805 閱讀 6740

題意是:在m點有兩輛車,要清掃所有的路,問走的最短路。題目鏈結

和poj1935 差不多,poj 1935 是乙個人走的最短路。

題解 所有邊權和 * 2  —— 樹的最長路徑。

樹形dp的解法不會,
#include#include#include#includeusing namespace std;

#define ff freopen("input.txt","r",stdin)

#define mem(x,y) memset(x,y,sizeof(x))

#define ll long long

#define inf 1000020

const int n=100010;

int head[n];

struct point

edge[n*2];

int tot,dis[n];

inline void init()

void add(int u,int v,int w)

int bfs(int u,int n)}}

int maxn=-1;

int pos=-1;

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

if(dis[i]>maxn)

return pos;

}int main()

{ //ff;

int n,i,m;

while(~scanf("%d%d",&n,&m))

{init();

int sum=0;

for(i=1;i

POJ 1849 樹的直徑 Two

如果乙個點開始遍歷一棵樹再回到原點那麼每條邊走兩次。現在是兩個人從同一點出發,那麼最後遍歷完以後兩人離得越遠越好。最後兩人所處位置的路徑上的邊走了一次,其他邊走了兩次。要使總路程最小,兩人最後停在直徑兩端。所以最終答案就是總權值 2 樹的直徑 1 include 2 include 3 includ...

poj3342 poj2342 樹形dp入門

poj3342 最近做樹形dp,渣渣 成喳喳喳辣,真是不開森。還是適合做基礎入門題。題意 比較好理解。就是一棵樹,選m個點,兒子和父親不能同時選。問最多能選多少個 題目中說的是上級,當然我這裡省略就是用父親節點和孩子結點表示啦 其實dp的內容很好想,d i 0 表示第i個點不選的結果,d i 1 表...

poj2486 Apple Tree 樹形dp揹包

題意 由n個結點組成的樹,每個結點有個點權,你從結點1出發,問最多走m步可以獲得點權和 重複走乙個結點只有第一次走過會 獲得點權值 的最大值。思路 設dp i j k 表示從i結點走j步 k 0表示回到i結點共j步,k 1表示j步之後不回到i節點 可獲得點權和的最大值。考慮當前的結點u,以及它的子結...