zoukankan      html  css  js  c++  java
  • POJ-1300 Door Man

    题目大意:

    你是一座大庄园的管家,庄园有很多房间,编号从0-n。你需要从m个房间走回到0号房间,并且通过一些房间,在通过这些房间的时候立即把们关上,关上了的门也不能再打开,并且在你回到0号房间的时候,所有的门已经关闭了。问你是否存在这样的路;

    解题思路:

    这题是道很简单的欧拉通路/欧拉回路判断

    我们知道一个定理:无向图G存在欧拉通路的充要条件是:G为联通图,并且G仅有两个奇度数节点或者无奇度数节点。

    根据这个就可以看轻松的推断出这个路径是否存在了。

    代码:

    #include <queue>
    #include <string>
    #include <vector>
    #include <iostream>
    using namespace std;
    
    const int maxn = 25;
    
    int deg[maxn];
    vector<int> vec[maxn];
    
    int main(){
        ios::sync_with_stdio(false);
        int n, m, a, len, tot;
        string op, str; op.clear(); str.clear();
        while(cin >> op && op != "ENDOFINPUT"){
            cin >> m >> n;
            cin.ignore(1);
            for(int i = 0; i < maxn; ++i){
                vec[i].clear(); deg[i] = 0;
            }
    
            tot = 0;
            for(int i = 0; i < n; ++i){
                str.clear();
                getline(cin, str);
                len = str.length(); a = 0;
                if(len == 0) continue;
                for(int j = 0; j <= len; ++j){
                    if(j == len || str[j] == ' '){
                        ++deg[a]; ++deg[i]; ++tot;
                        a = 0;
                        vec[i].push_back(a);
                        vec[a].push_back(i);
                        continue;
                    }
                    a *= 10; a += str[j] - '0';
                }
            }
            cin >> str;
            int cnt = 0, flag;
            for(int i = 0; i < n; ++i){
                cnt += (deg[i] & 1);
            }
            if((cnt == 0 && m == 0) || (cnt == 2 && (deg[0] & 1) && m != 0)) flag = 1;
            else flag = 0;
    
            if(flag) cout << "YES " << tot << endl;
            else cout << "NO" << endl;
        }
        return 0;
    }


  • 相关阅读:
    hdu2818 Building Block
    struct2面试准备
    Spring mvc 面试
    Spring 面试详解
    Java面试必备Springioc上
    redis高级命令4 持久化机制 、事务
    redis高级命令3哨兵模式
    redis高级命令2
    redis高级命令1
    redis基础二----操作set数据类型
  • 原文地址:https://www.cnblogs.com/wiklvrain/p/8179416.html
Copyright © 2011-2022 走看看