zju2008欧拉回路
来源:互联网 发布:传奇盛世翅膀数据7到8 编辑:程序博客网 时间:2024/05/03 02:25
欧拉回路:①不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路
②无向图欧拉判定的充要条件是:1)每个点的度数为偶数,2)图是连通的
②无向图欧拉判定的充要条件是:1)每个点的度数为偶数,2)图是连通的
http://acm.hdu.edu.cn/showproblem.php?pid=1878
浙大计算机研究生复试上机考试-2008年
#include <stdio.h>#include <string.h>bool graph[1000][1000]; //邻接矩阵保存图 int degree[1000]; //结点度数bool visit[1000]; //一次遍历后,结点是否访问过(访问过true) int n,m;void DFS(int t) //从结点t开始做深度遍历,遍历到的结点修改visit标记已访问过{ visit[t]=true; for (int i=1;i<=n;i++) //从1到n,搜索1的邻接点x,再对其DFS(x) { if ( graph[t][i] && visit[i]==false ) //边存在,未访问过(所有点只能访问一次) { DFS(i); } }} bool connect(){for (int i=1;i<n;i++){if (visit[i]==false) //一次DFS后,仍有未访问的点则不连通{return false;}}return true;}bool isOuShu() //判断结点度是否是偶数{for (int i=1;i<n;i++){if (degree[i]%2!=0){return false;}}return true;}int main(){int i,a,b;while (scanf("%d",&n)!=EOF && n!=0) //输入n=0就会退出,所以n,m分别输入{scanf("%d",&m);memset(graph,0,sizeof(graph)); //重点易忘:初始化清0!!!memset(degree,0,sizeof(degree));memset(visit,0,sizeof(visit));for(i=1;i<=m;i++){scanf("%d%d",&a,&b);graph[a][b]=graph[b][a]=true; //无向图degree[a]++;degree[b]++;}DFS(1); //从1开始做一次遍历来标记visitif ( isOuShu() && connect() ) //所有节点的度是偶数 而且连通 {printf("1\n");}else{printf("0\n");}}return 0;}
- zju2008欧拉回路
- 九度oj 题目1027:欧拉回路 【ZJU2008考研机试题2】
- HDU1878 欧拉回路【欧拉回路】
- 欧拉回路判断
- 欧拉回路 hdu1878
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路,欧拉路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 欧拉回路
- 图论 欧拉回路
- 欧拉回路
- HDOJ 1014 Uniform Generator
- staruml之 第三章 管理项目
- Apache:系统找不到指定的文件: No installed service named"Apache2"
- POJ 1961 Period || HDU 1358 Period || ZOJ 2177 Period
- android ICS2 google帐户的联系人无法搜索出来问题
- zju2008欧拉回路
- 关于java读取远程文件时网络超时判断
- Tomcat下JNDI数据源配置-----Druid
- Unicode编码及其实现:UTF-16、UTF-8,and more
- AlertDialog 使用总结
- 兼容各个浏览器的字体阴影的实现
- 百度谷歌搜索引擎高级指令
- TeeChart for .NET中文版教程大全
- C# 获取IP