subtack #1 RE,其余AC,求助!
查看原帖
subtack #1 RE,其余AC,求助!
979863
封禁用户楼主2023/5/23 14:57
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int a,b,n,ans,timee,root,low[110],dfn[110],cnt[110];
int fist[10100],to[10100],nex[10100],t;
void add(int x,int y)
{
    to[++t]=y;
    nex[t]=fist[x];
    fist[x]=t;
    return;
}
void tarjin(int u,int dad)
{
    low[u]=dfn[u]=++timee;
    int v;
    for(int i=fist[u];i!=-1;i=nex[i])
    {
        v=to[i];
        if(!dfn[v])  
        {
            tarjin(v,u);
            low[u]=min(low[u],low[v]);
            if(low[v]>=dfn[u])   
            {
                if(u!=a&&u!=b)
                {
                    if(dfn[u]<=low[b])  
                        ans=min(ans,u);
                }
            }
        }
        else if(v!=dad)
            low[u]=min(low[u],dfn[v]);
    }
    return ;
}
int main()
{
    memset(fist,-1,sizeof(fist));
    scanf("%d",&n);
    while(1)
    {
        scanf("%d%d",&a,&b);
        if(a==0&&b==0) break;
        add(a,b);
        add(b,a);
    }
    scanf("%d%d",&a,&b);
    ans=n+1;
    tarjin(a,a);		
    if(ans>n) printf("No solution\n");
    else printf("%d\n",ans);
    return 0;
}
2023/5/23 14:57
加载中...