f[ i ][ j ] 表示 i 為根節點擊擇 j 個點要去掉的最小邊數。
一開始初始化所有邊都去掉,只剩下本身乙個點,值等於度數,根據是否為根結點加減一。
然後dp時-1是應為要加上 u 到 v 的一條邊,dp表示要去掉的邊,則要去掉的一條邊則減一
//洛谷p1272 重建道路
//樹形dp
#include using namespace std;
const int maxn = 155;
struct ned[maxn<<2];
int dp[maxn][maxn],du[maxn];
int head[maxn],cnt,n,p,ans=0x7ffffff;
void add(int u,int v)
void dfs(int u,int fa)
} } ans = min(ans,dp[u][p]+(fa!=0)); //不是根結點 還要去掉父結點和自己的連線
}int main()
memset(dp,0x3f,sizeof(dp));
dfs(1,0);
printf("%d",ans);
return 0;
}
洛谷 P1272 重建道路
題目描述 一場可怕的 後,人們用n個牲口棚 1 n 150,編號1.n 重建了農夫john的牧場。由於人們沒有時間建設多餘的道路,所以現在從乙個牲口棚到另乙個牲口棚的道路是惟一的。因此,牧場運輸系統可以被構建成一棵樹。john想要知道另一次 會造成多嚴重的破壞。有些道路一旦被毀壞,就會使一棵含有p ...
洛谷 P1272 重建道路
題目描述 一場可怕的 後,人們用n個牲口棚 1 n 150,編號1.n 重建了農夫john的牧場。由於人們沒有時間建設多餘的道路,所以現在從乙個牲口棚到另乙個牲口棚的道路是惟一的。因此,牧場運輸系統可以被構建成一棵樹。john想要知道另一次 會造成多嚴重的破壞。有些道路一旦被毀壞,就會使一棵含有p ...
洛谷P1272 重建道路
一場可怕的 後,人們用n個牲口棚 1 n 150,編號1.n 重建了農夫john的牧場。由於人們沒有時間建設多餘的道路,所以現在從乙個牲口棚到另乙個牲口棚的道路是惟一的。因此,牧場運輸系統可以被構建成一棵樹。john想要知道另一次 會造成多嚴重的破壞。有些道路一旦被毀壞,就會使一棵含有p 1 p n...