poj1300判断欧拉回路

对于连通图

无向图:1.无奇点,可以从任意一点出发回到原点。 2.存在奇点,且只有两个,从一奇点出发,另一奇点终止。

有向图:1.所有点入度等于出度。 2.只有两个点入度不等于出度,且其中一个点入度比出度大一另一个点的出度比入度大一。

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <stack>
#include <queue>
#include <vector>
#include <map>
#include <string>
#include <iostream>
using namespace std;
int s,n;
int ans[1000];
int ret;
void solve()
{
    char str[1000];
    for(int i=0;i<n;i++){
        cin.getline(str,100);
        int len=strlen(str);
        for(int j=0;j<len;j++){
            if(str[j]!=‘ ‘){
                ans[i]++; ret++; int k=str[j]-‘0‘;ans[k]++;
            }
        }
    }
    cin.getline(str,100);
    int a=0;int b=0;
    for(int i=0;i<n;i++){
        if(ans[i]&1) a++;
        else b++;
    }
    if(a==0&&s==0)
    cout<<"YES "<<ret<<endl;
    else
        if(a==2&&s!=0&&ans[s]&1&&ans[0]&1)
        cout<<"YES "<<ret<<endl;
    else
        cout<<"NO"<<endl;
}
int main()
{
    char str[1000];char str1[1000];
    while(cin.getline(str,100)){
        ret=0;
        memset(ans,0,sizeof(ans));
        if(str[0]==‘S‘){
            sscanf(str,"%s%d%d",str1,&s,&n);
            solve();
        }
        else break;
    }
    return 0;
}

poj1300判断欧拉回路

时间: 2024-10-12 15:54:23

poj1300判断欧拉回路的相关文章

POJ1300(欧拉回路)

Door Man Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2139   Accepted: 858 Description You are a butler in a large mansion. This mansion has so many rooms that they are merely referred to by number (room 0, 1, 2, 3, etc...). Your mast

计蒜客 | 欧拉回图 | 判断欧拉回路

你学过一笔画问题么?其实一笔画问题又叫欧拉回路,是指在画的过程中,笔不离开纸,且图中每条边仅画一次,而且可以回到起点的一条回路. 蒜头君打算考考你,给你一个图,问是否存在欧拉回路? 输入格式 第 11 行输入两个正整数,分别是节点数 N(1 < N < 1000)N(1<N<1000) 和边数 M(1 < M < 100000)M(1<M<100000): 紧接着 MM 行对应 MM 条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从 1

HDU 1878(1Y) (判断欧拉回路是否存在 奇点个数为0 + 一个联通分量 *【模板】)

欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9797    Accepted Submission(s): 3554 Problem Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回路? Input 测试输入包含若干测试用例.每个测试用例的第

P1341 无序字母对(Hierholzer算法判断欧拉回路)

https://www.luogu.com.cn/problem/P1341 https://blog.csdn.net/STILLxjy/article/details/51956183?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task https://blog.csdn.net/qq_37555704/article/details/83347641

(判断欧拉回路)poj 1368

Play on Words Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10056   Accepted: 3447 Description Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solve it to open that doors. Because ther

hdu1116 欧拉回路

1 //Accepted 248 KB 125 ms 2 //欧拉回路 3 //以26个字母为定点,一个单词为从首字母到末尾字母的一条边 4 //下面就是有向图判断欧拉回路 5 //连通+节点入度和==出度和 或者 存在一对节点一个入度比出度大1,一个小1 6 #include <cstdio> 7 #include <cstring> 8 #include <iostream> 9 #include <queue> 10 using namespace s

HDOJ 欧拉回路 1878【欧拉回路判定】

欧拉回路 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 10459    Accepted Submission(s): 3815 Problem Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回路? Input 测试输入包含若干测试用例.每个测试用例

欧拉路径和欧拉回路

转载自:http://www.cnblogs.com/zhourongqing/archive/2012/09/18/2690088.html 欧拉路径和欧拉回路欧拉路径:从某结点出发一笔画成所经过的路线叫做欧拉路径.欧拉回路:在欧拉路径的基础上又回到起点.a.凡是由偶点组成的连通图,一定可以一笔画成.画时可以把任一偶点为起点,最后一定能以这个点为 终点画完此图. b.凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成.画时必须把一个奇点为起点,另 一个奇点终点. c.其他情况的图都不能

欧拉回路基本概念及定理

转 http://www.cnblogs.com/luyingfeng/p/3877338.html 1. 欧拉通路.欧拉回路.欧拉图无向图:1) 设G是连通无向图,则称经过G的每条边一次并且仅一次的路径为欧拉通路:2) 如果欧拉通路是回路(起点和终点是同一个顶点),则称此回路为欧拉回路(Euler circuit):3) 具有欧拉回路的无向图G称为欧拉图(Euler graph).有向图:1) 设D是有向图,D的基图连通,则称经过D的每条边一次并且仅一次的有向路径为有向欧拉通路:2) 如果有向