栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3713 Transferring Sylla

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3713 Transferring Sylla

#include<cstdio>#include<cstring>#include<iostream>#include<queue>using namespace std;const int inf=1<<29;const int maxn=510;const int maxm=5e4;int e,dfscolck,head[maxn],pnt[maxm],nxt[maxm],dfn[maxn],low[maxn];int n,m,root;bool lost[maxn];void AddEdge(int u,int v){    pnt[e]=v;nxt[e]=head[u];head[u]=e++;}int DFS(int u,int f,bool &find){    dfn[u]=low[u]=++dfscolck;    int child=0;    for(int i=head[u];i!=-1;i=nxt[i])    {        if(lost[pnt[i]]) continue;        if(!dfn[pnt[i]])        { child++; low[u]=min(low[u],DFS(pnt[i],u,find)); if(find)     return low[u]; if(u==root&&child>1||u!=root&&low[pnt[i]]>=dfn[u]) {     find=true;     return low[u]; }        }        else if(dfn[pnt[i]]<dfn[u]&&pnt[i]!=f)        { low[u]=min(low[u],dfn[pnt[i]]);        }    }    return low[u];}void solve(){    bool is=false;    for(int i=0;i<n;i++)    {        lost[i]=1;        dfscolck=0;        memset(dfn,0,sizeof(dfn));        root=(i+1)%n;        DFS(root,-1,is);        for(int j=0;j<n;j++) if(j!=i&&!dfn[j]) {     is=true;     break; }        lost[i]=0;        if(is) break;    }    if(is)        printf("NOn");    else        printf("YESn");}int main(){    while(scanf("%d%d",&n,&m)&&(n+m))    {        e=0;        memset(head,-1,sizeof(head));        for(int i=0;i<m;i++)        { int u,v; scanf("%d%d",&u,&v); AddEdge(u,v); AddEdge(v,u);        }        if(n<=2)        { printf("NOn"); continue;        }        solve();    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376806.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号