http://poj.org/problem?id=1330&&大水貨一個啊

來源:互聯網
上載者:User

LCA純版題,各種調試不成功,砸電腦的心都有了;撞牆去了噁心死了;

更噁心的是vs2010報錯:sbIDE 

#include<iostream>#include<cstring>#include<vector>#include<cstdio>#include<algorithm>using namespace std;const int MAX=10010;#define CLR(arr,val) memset(arr,val,sizeof(arr))int n,father[MAX],rank[MAX],ancestors[MAX],Indegree[MAX];vector<int> Adj[MAX],temp[MAX];bool visited[MAX];void Init(){   for(int i=0;i<MAX;i++)    {   father[i]=i;        Adj[i].clear();        temp[i].clear();    }    fill(rank,rank+MAX,1);        CLR(visited,false);}int Find(int u){   return father[u]==u?u:father[u]=Find(father[u]);}void Union(int u,int v){   u=Find(u);    v=Find(v);    if(u==v) return ;     father[v]=u;}void LCA(int u){   ancestors[u]=u;//設定自己為祖先    for(vector<int>::size_type i=0;i<Adj[u].size();i++)     {   LCA(Adj[u][i]);//DFS        Union(u,Adj[u][i]);        ancestors[Find(u)]=u;    }    visited[u]=true;    for(vector<int>::size_type i=0;i<temp[u].size();i++)    {   if(visited[temp[u][i]])           cout<<ancestors[Find(temp[u][i])]<<endl;     }}int main(){   int k,u,v;    scanf("%d",&k);    while(k--)    {   scanf("%d",&n);        Init();        for(int i=0;i<n-1;i++)        {   scanf("%d%d",&u,&v);            Adj[u].push_back(v);            Indegree[v]++;        }        scanf("%d%d",&u,&v);        temp[u].push_back(v);        temp[v].push_back(u);        for(int i=1;i<=n;i++)            if(!Indegree[i])             {   LCA(i);//找到樹根                 break;             }         }    return 0;}/* 1 3 1 4 3 6 3 5 5 2 4 8 4 7 1 3 3 4 5 6 4 6 2 7 */

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.