算法笔记_141:无向图的欧拉回路判断问题(Java)
目录
1 问题描述
束。
2 解决方案
具体代码如下:
- package com.liuzhen.practice;
- import java.util.ArrayList;
- import java.util.Scanner;
- public class Main {
- public static int MAX = 1000;
- public static int[][] map = new int[MAX][MAX]; //输入图
- public static ArrayList<Integer> result = new ArrayList<Integer>(); //用于存放最终输出结果
- //判断给定图的每个顶点的度是否均为偶数
- public boolean judge(int[] degree) {
- for(int i = 0;i < degree.length;i++) {
- if(degree[i] % 2 != 0)
- return false;
- }
- return true;
- }
- //使用BFS遍历,判断给定图是否为连通图
- public boolean bfs(int n) {
- boolean[] used = new boolean[n];
- ArrayList<Integer> list = new ArrayList<Integer>();
- list.add(0);
- used[0] = true;
- while(!list.isEmpty()) {
- int temp = list.get(0);
- list.remove(0);
- for(int i = 0;i < n;i++) {
- if(!used[i] && map[temp][i] != 0) {
- used[i] = true;
- list.add(i);
- }
- }
- }
- for(int i = 0;i < n;i++) {
- if(used[i] == false)
- return false;
- }
- return true;
- }
- public static void main(String[] args) {
- Main test = new Main();
- Scanner in = new Scanner(System.in);
- while(true) {
- int n = in.nextInt(); //输入图的顶点数
- if(n == 0)
- break;
- int m = in.nextInt(); //输入图的边数目
- int[] degree = new int[n]; //用于计算输入图的每个顶点的度
- for(int i = 0;i < m;i++) {
- int a = in.nextInt();
- int b = in.nextInt();
- map[a - 1][b - 1] = 1;
- map[b - 1][a - 1] = 1;
- degree[a - 1]++;
- degree[b - 1]++;
- }
- if(test.judge(degree) && test.bfs(n))
- result.add(1);
- else
- result.add(0);
- }
- for(int i = 0;i < result.size();i++)
- System.out.println(result.get(i));
- }
- }
运行结果:
- 3 3
- 1 2
- 1 3
- 2 3
- 3 2
- 1 2
- 2 3
- 0
- 1
- 0
参考资料:
1. 欧拉回路
算法笔记_141:无向图的欧拉回路判断问题(Java)的更多相关文章
- 算法笔记_142:无向图的欧拉回路求解(Java)
目录 1 问题描述 2 解决方案 1 问题描述 John's trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8 ...
- 算法笔记_147:有向图欧拉回路判断应用(Java)
目录 1 问题描述 2 解决方案 1 问题描述 Description In order to make their sons brave, Jiajia and Wind take them t ...
- Java实现无向图的欧拉回路判断问题
1 问题描述 Problem Description 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路.现给定一个图,问是否存在欧拉回路? Input 测试输入包含若干测试 ...
- 算法笔记_044:表达式计算求值(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值.其中除表示整除. 输入格式 输入一行,包含一个表达式. 输出格式 输出这个表达式的 ...
- 算法笔记_052:蓝桥杯练习Multithreading(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 现有如下一个算法: repeat ni times yi := y y := yi+1 end repeat 令n[1]为你需要算加法的第 ...
- 算法笔记_180:历届试题 国王的烦恼(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座桥连接.然而,由于海水冲 ...
- 算法笔记_149:图论之桥的应用(Java)
目录 1 问题描述 2 解决方案 1 问题描述 1310 One-way traffic In a certain town there are n intersections connected ...
- 算法笔记_139:二分图的最大权匹配(Java)
目录 1 问题描述 2 解决方案 1 问题描述 何为二分图的最大权匹配问题? 最大权二分匹配问题就是给二分图的每条边一个权值,选择若干不相交的边,得到的总权值最大. 2 解决方案 对于此问题的讲解 ...
- 算法笔记_133:最大连续乘积子数组(Java)
目录 1 问题描述 2 解决方案 2.1 蛮力法 2.2 动态规划法 1 问题描述 给定一个浮点数组,任意取出数组中的若干个连续的数相乘,请找出其中乘积最大的子数组. 2 解决方案 2.1 蛮力法 ...
随机推荐
- BZOJ1001: [BeiJing2006]狼抓兔子 (最小割转最短路)
浅析最大最小定理在信息学竞赛中的应用---周东 ↑方法介绍 对于一个联通的平面图G(满足欧拉公式) 在s和t间新连一条边e; 然后建立一个原图的对偶图G*,G*中每一个点对应原图中每一个面,每一条边对 ...
- 【2-SAT】【DFS】【分类讨论】Gym - 101617K - Unsatisfying
题意:给你一张2-SAT,问你加至少几句a V b(不能用非运算)这样的语句,使得其无法全为真. 如果最开始没有左右两项都含非运算的析取表达式,则无解,因为显然你可以对每一项的不含非的那项规定为真,使 ...
- 【洛谷】P1631: 序列合并
P1631 序列合并 题目描述 有两个长度都是N的序列A和B,在A和B中各取一个数相加可以得到N2个和,求这N2个和中最小的N个. 输入输出格式 输入格式: 第一行一个正整数N: 第二行N个整数Ai ...
- ExifInterface针对照片的使用
ExifInterface是保存照片信息的,那么我们在有需要的时候就可以通过这类,来获取照片的一些数码参数来做适当来逻辑处理,比较典型的案例就是android有的机型拍照或者选择照片后,照片可能会被旋 ...
- Linux下ip route、ip rule、iptables的关系(转)
1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目 ...
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
使用Java的HttpURLConnection类可以实现HttpClient的功能,而不需要依赖任何其他类库.所有有时候大家就直接使用它来完成一些简单(或复杂)的功能.但是你活在伟大的{print ...
- Spartan-6 FPGA Configuration
These configuration pins serve as the interface for a number of different configuration modes: • JTA ...
- systemd-udevd
描述:systemd-udevd是监听内核发出的设备事件,并根据udev规则处理每个事件. 选项: --daemon 脱离控制台,并作为后台守程运行. --debug 在标准错误上打印调试信息 --c ...
- 插值技术之Bezier插值(1) -- Bezier Curve
作者:i_dovelemon 来源:CSDN 日期:2015 / 7 / 11 主题:Interpolate,Bezier Curve 引言 在游戏开发中.诸如动画系统.路径计算等等操作,都会遇到对数 ...
- (转)媒体格式分析之flv -- 基于FFMPEG
本来是应该先写一个媒体文件格式的简单讲解的,还没来得及写,以后再写.今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv. FLV 是FLASH V ...