zoukankan      html  css  js  c++  java
  • A1126 Eulerian Path [欧拉图]

    在这里插入图片描述

    欧拉图 节点度为0或2 半欧拉两个结点度为奇数,其他偶数。 同时要保证其为连通图(任意两个结点能走到)

    #include<iostream>
    #include<vector>
    #include<map>
    #include<string>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #include<set>
    using namespace std;
    const int maxn = 501;
    vector<int>v[maxn];
    bool visit[maxn];
    int cnt = 0;
    void dfs(int index)
    {
    	visit[index] = true;
    	cnt++;
    	for (int i = 0; i < v[index].size(); i++)
    	{
    		if (visit[v[index][i]] == false)
    			dfs(v[index][i]);
    	}
    }
    int main()
    {
    	int n, m, a, b, even = 0;
    	cin >> n >> m;
    	for (int i = 0; i < m; i++)
    	{
    		cin >> a >> b;
    		v[a].push_back(b);
    		v[b].push_back(a);
    	}
    	for (int i = 1; i <= n; i++)
    	{
    		if (i!=1) cout << " ";
    		cout << v[i].size();
    		if (v[i].size() % 2 == 0) even++;
    	}
    	cout << endl;
    	dfs(1);
    	if (even == n && cnt == n)
    		cout << "Eulerian" << endl;
    	else if (even == n - 2 && cnt == n)
    		printf("Semi-Eulerian");
    	else
    		printf("Non-Eulerian");
    	return 0;
    
    }
    
  • 相关阅读:
    SSL 1010——方格取数
    SSL 1558——科技庄园
    SSL 2295——暗黑破坏神
    SSL 2294——打包
    SSL 2293——暗黑游戏
    SSL 2305——竞赛总分
    SSL 1072——砝码称重
    SSL 2291——分组背包
    SSL 2290——潜水员
    SSL 2301——混合背包
  • 原文地址:https://www.cnblogs.com/Hsiung123/p/13811969.html
Copyright © 2011-2022 走看看