NYOJ 42 一笔画问题
2016-07-19 11:53
381 查看
题目传送门
欧拉路径和欧拉回路
欧拉路径:从某结点出发一笔画成所经过的路线叫做欧拉路径。
欧拉回路:在欧拉路径的基础上又回到起点。
a、凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为
终点画完此图。
b、凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另
一个奇点终点。
c、其他情况的图都不能一笔画出。(有偶数个奇点除以2便可算出此图需几笔画成。)
欧拉回路和欧拉路径的判断
欧拉回路:
无向图:每个顶点的度数都是偶数,则存在欧拉回路。
有向图:每个顶点的入度都等于出度,则存在欧拉回路。
欧拉路径:
无向图:当且仅当该图所有顶点的度数为偶数 或者 除了两个度数为奇数外其余的全是偶数。
有向图:当且仅当该图所有顶点 出度=入度 或者 一个顶点 出度=入度+1,另一个顶点 入度=出度+1,其
他顶点 出度=入度。
思路:
这里能一笔画有两个条件。
图连通,度为奇数的点的个数为0或者2.
这里用邻接表表示的图。
GG
欧拉路径和欧拉回路
欧拉路径:从某结点出发一笔画成所经过的路线叫做欧拉路径。
欧拉回路:在欧拉路径的基础上又回到起点。
a、凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为
终点画完此图。
b、凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另
一个奇点终点。
c、其他情况的图都不能一笔画出。(有偶数个奇点除以2便可算出此图需几笔画成。)
欧拉回路和欧拉路径的判断
欧拉回路:
无向图:每个顶点的度数都是偶数,则存在欧拉回路。
有向图:每个顶点的入度都等于出度,则存在欧拉回路。
欧拉路径:
无向图:当且仅当该图所有顶点的度数为偶数 或者 除了两个度数为奇数外其余的全是偶数。
有向图:当且仅当该图所有顶点 出度=入度 或者 一个顶点 出度=入度+1,另一个顶点 入度=出度+1,其
他顶点 出度=入度。
思路:
这里能一笔画有两个条件。
图连通,度为奇数的点的个数为0或者2.
这里用邻接表表示的图。
GG
#include<cstring> #include<cstdio> #include<iostream> #include<algorithm> #include<vector> using namespace std; #define LL long long #define INF 0x3f3f3f3f const int MAXN=1005; vector<int>v[MAXN]; int F[MAXN]; int T,n,m; int a,b; int find(int x){ return F[x]==x?x:F[x]=find(F[x]); } int main(){ scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)F[i]=i; memset(v,0,sizeof(v)); while(m--){ scanf("%d%d",&a,&b); v[a].push_back(b);//双向边 v[b].push_back(a); int u=find(a),v=find(b); if(u!=v)F[u]=v;//合并 } int cnt=0; int k=0; for(int i=1;i<=n;i++){ if(find(i)==i)cnt++; if(v[i].size()%2)k++;//奇数的度的点 } if((k==0||k==2)&&cnt==1)printf("Yes\n");//k为0或2,根只有一个。 else printf("No\n"); } return 0; }
相关文章推荐
- Shell/Python实现Mysql读txt文本
- Android 获取存储路径
- 如何在 IIS 上搭建 mercurial server
- Android adb bugreport工具分析和使用
- 1065. A+B and C (64bit) (20)
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found错误解决
- Android adb bugreport工具分析和使用
- pip China
- 毕业生网站难点:上传表格,以及统计比率
- ODOO发邮件失败解决方法
- HTTPS详解SSL/TLS
- hd 1803 The MAX(sort)
- Tomcat 7.0.3x 启动慢并且遇到StackOverflowError的异常的解决办法
- 使用邮箱找回密码 springmvc
- TreeSet与TreeMap浅解
- 吞钱退卡
- PHPExcel用法有感
- html文档类型能直接改成html5吗?
- MongoDB学习笔记(1)HelloWorld(增删改查)
- Java中HashMap与Hashtable的区别