codevs 1503 愚蠢的宠物
Posted Alex丶Baker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codevs 1503 愚蠢的宠物相关的知识,希望对你有一定的参考价值。
1503 愚蠢的宠物
1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 using namespace std; 5 6 #define maxn 1000000+100 7 int father[maxn]; 8 int a[maxn],b[maxn]; 9 int main() 10 { 11 int n,x,y; 12 memset(a,0x3f,sizeof(a)); 13 memset(b,0x3f,sizeof(b)); 14 cin>>n; 15 for(int i=1;i<=n;i++) 16 father[i]=i; 17 for(int i=1;i<n;i++) 18 { 19 cin>>x>>y; 20 father[y]=x; 21 } 22 cin>>x>>y; 23 for(int i=0;i<n;i++) 24 { 25 a[x]=min(i,a[x]); 26 x=father[x]; 27 b[y]=min(i,b[y]); 28 y=father[y]; 29 } 30 int mn=999999,ans; 31 for(int i=1;i<=n;i++) 32 { 33 if(a[i]+b[i]<mn){ 34 mn=a[i]+b[i]; 35 ans=i; 36 } 37 } 38 cout<<ans; 39 return 0; 40 }
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define maxn 1000000 4 int n,x,y,head[maxn],num; 5 int deep[maxn],size[maxn],dad[maxn],top[maxn]; 6 7 struct Edge{ 8 int v,next; 9 }edge[maxn]; 10 11 void add(int u,int v) 12 { 13 edge[++num].v=v; 14 edge[num].next=head[u]; 15 head[u]=num; 16 } 17 18 void dfs(int x) 19 { 20 size[x]=1 ; deep[x]=deep[dad[x]]+1; 21 for(int i=head[x];i;i=edge[i].next) 22 { 23 int v=edge[i].v; 24 if(dad[x]==v) continue; 25 dad[v]=x; dfs(v); size[x]+=size[v]; 26 } 27 } 28 29 void dfs2(int x) 30 { 31 int t=0; if(!top[x]) top[x]=x; 32 for(int i=head[x];i;i=edge[i].next) 33 { 34 int v=edge[i].v; 35 if(dad[x]!=v&&size[t]<size[v]) t=v; 36 } 37 if(t) top[t]=top[x],dfs2(t); 38 for(int i=head[x];i;i=edge[i].next) 39 { 40 int v=edge[i].v; 41 if(dad[x]!=v&&t!=v) dfs2(v); 42 } 43 } 44 45 int lca(int x,int y) 46 { 47 for(;top[x]!=top[y];x=dad[top[x]]) 48 if(deep[top[x]]<deep[top[y]]) swap(x,y); 49 return deep[x]<deep[y]?x:y; 50 } 51 52 53 int main() 54 { 55 scanf("%d",&n); 56 for(int i=1;i<n;i++) 57 { 58 scanf("%d%d",&x,&y); 59 add(x,y); add(y,x); 60 } 61 dfs(1); dfs2(1); 62 int a,b,ans; 63 scanf("%d%d",&a,&b); 64 printf("%d",lca(a,b)); 65 return 0; 66 }
以上是关于codevs 1503 愚蠢的宠物的主要内容,如果未能解决你的问题,请参考以下文章
《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段