10596 - Morning Walk

来源:互联网 发布:魔兽争霸mac怎么安装 编辑:程序博客网 时间:2024/06/05 05:43
/* UVa 10596 Morning Walk * 思路:从出发点到出发点的欧拉回路(1)连通 (2)所有点的度为偶数*/import java.util.Arrays;import java.util.Scanner;class Main {static final int MAXN = 205;int[][] g = new int[MAXN][MAXN];int[] vis = new int[MAXN];int[] degree = new int[MAXN];public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Main m = new Main();int n,r;boolean isFound = true;while(scanner.hasNext()) {isFound = true;n = scanner.nextInt();r = scanner.nextInt();if(r == 0) {System.out.println("Not Possible");continue;}for(int i=0; i<MAXN; i++) {Arrays.fill(m.g[i],0);}Arrays.fill(m.degree, 0);Arrays.fill(m.vis, 0);int u=0,v;for(int i=0; i<r; i++) {u = scanner.nextInt();v = scanner.nextInt();m.g[u][v] = m.g[v][u] = 1;m.degree[u]++;m.degree[v]++;}m.dfs(u,n);for(int i=0; i<n; i++) {if(m.vis[i] == 0 || m.degree[i]%2!=0) {isFound = false;break;}}if(!isFound) {System.out.println("Not Possible");} else {System.out.println("Possible");}}}private void dfs(int u, int n) {vis[u] = 1;for(int v=0; v<n; v++) {if(g[u][v]==1 && vis[v] == 0) dfs(v,n);}}}


 

原创粉丝点击