CF #148 DIV2 E

來源:互聯網
上載者:User

樹形DP的不錯的題目 枚舉第一個點,以此為根dfs,然後對於另一個點v不再路徑u-v上的邊 全要調成指向樹葉,路徑上的邊,相當於01序列化為11....00

#include<iostream>#include<vector>#include<algorithm>using namespace std;#define N 3100int dp[N][2],n,sum;struct node{int f,y;};vector<node>vt[N];void dfs(int x,int fa,int v){if(fa==-1){dp[x][0]=dp[x][1]=0;}else{dp[x][1]=dp[fa][1]+(!v);dp[x][0]=min(dp[fa][1],dp[fa][0])+v;}for(int i=0;i<vt[x].size();i++){int f=vt[x][i].f;int y=vt[x][i].y;if(y==fa)continue;sum+=(!f);dfs(y,x,f);}return;}int main(){cin>>n;for(int i=0;i<n-1;i++){int a,b;node s;cin>>a>>b;a--;b--;s.y=b;s.f=1;vt[a].push_back(s);s.y=a;s.f=0;vt[b].push_back(s);}int ans=50000000;for(int i=0;i<n;i++){sum=0;dfs(i,-1,0);for(int j=0;j<n;j++){int m=min(dp[j][0],dp[j][1]);ans=min(ans,sum-dp[j][1]+m);}}cout<<ans<<endl;return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.