uva 10596 - Morning Walk

简介: 点击打开链接 题目意思:给定n个点,判断由某一点出发最后能否回到原点 解题思路:比较简单的欧拉回路的应用,根据欧拉回路的性质,所有节点的度数(入度加出度)都是偶数,我么只须要开一个road数组存储每一个节点的度数,最后遍历数组判断是不...

点击打开链接


题目意思:给定n个点,判断由某一点出发最后能否回到原点


解题思路:比较简单的欧拉回路的应用,根据欧拉回路的性质,所有节点的度数(入度加出度)都是偶数,我么只须要开一个road数组存储每一个节点的度数,最后遍历数组判断是不是全部都是偶数即可  


代码:


//简单的欧拉回路的应用
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
const int MAXN = 210;

int  n , r;
int  road[MAXN];//存储节点的度数

int main(){
    int x , y , i , j , mark;
    while(~scanf("%d%d" , &n , &r)){
        memset(road , 0 , sizeof(road));
        mark = 0;
        for(i = 0 ; i < r ; i++){
            scanf("%d%d" , &x , &y);
            road[x]++;
            road[y]++;
        }
        if(r != 0){
            for(j = 0 ; j < n ; j++){
                if(road[j] %2 != 0){
                    mark = 0;
                    break;
                }
            }
            if(j == n)
                mark = 1;
        }
        if(mark)
            printf("Possible\n");
        if(mark == 0)
            printf("Not Possible\n");
    }
    return 0 ;
}



目录
相关文章
|
8月前
UVa10596 - Morning Walk(并查集)
UVa10596 - Morning Walk(并查集)
38 0
|
8月前
uva127 "Accordian" Patience
uva127 "Accordian" Patience
24 0
uva 548 Tree
点击打开链接uva 548 思路: 二叉树 分析: 1 题目给定一棵二叉树的中序序列和后序序列求这个二叉树里面,根节点到叶子节点的最短路径的叶子节点的值,如果有多条路径输出最小的叶子节点 2 题目说最多有10000个节点,但是由于题目所说...
1107 0
|
SQL
uva 10881 - Piotr's Ants
点击打开链接uva 10881 思路:模拟 分析: 1 如果把蚂蚁看成是没有区别的点,那么只需计算出每只蚂蚁在t秒之后的位置即可。比如有三只蚂蚁,蚂蚁1 = (1,L),蚂蚁2 = (3 , L) , 蚂蚁3 = (4,L),则两秒钟之后,3只蚂蚁的位置分别为(3 , R) , (1 , L) , (2 , L)。
797 0
uva 10801 - Lift Hopping
点击打开链接uva 10801 思路:最短路+Dijkstra 分析:          1 有n个电梯,电梯可以到达的层数是一定的,那么我们就把楼层看成是图上的点,那么我们就可以得到的哪些点是有连通的。
991 0
|
存储
uva 11129 - An antiarithmetic permutation
点击打开链接uva 11129 题目意思: 给定一个初始序列为0 1 2 3 .....n-1;要求找到一个序列能够满足所有的子序列都不能够形成等差序列 解题思路: 1思路:递归+分治 2分析:网上那些神牛是这么说的:把这个序列按照奇偶位置分开成两个序列,然后再对两个序列进行奇偶位置分开......最后得到的数组就是所要的ans,为什么这样可以呢,因为在奇数位置内和偶数位置内等差为2,而两个序列之间为1,所以这样肯定不会构成等差序列。
845 0