华为OJ(笔画)
来源:互联网 发布:诚邀辣妹 网络性与爱 编辑:程序博客网 时间:2024/04/28 06:20
1、输入点的个数
2、输入点的坐标
如果可以一笔画这输出 画线顺序
欧拉定理 如果一个网络是连通的并且奇顶点的个数等于0或2,那么它可以一笔画出;否则它不可以一笔画出。
判断一笔画的方法:
①是连通的。一个图,如果图上任意二点总有线段连接着,就称为连通的。不是连通的就不能一笔画出。
②奇点个数是0或者是2。图上线段的端点可以分成二类,奇点和偶数。一个点,以它为端点的线段数是奇数就称为奇点,线段数是偶数就称为偶点。
#include<iostream>#include<string>using namespace std;bool **p;bool *con;int *cnt;void DFS(int cur,int n){con[cur]=true;for(int i=1;i<=n;i++)if(p[cur][i]){cnt[cur]++;if(!con[i])DFS(i,n);}}bool connect(int n){for(int i=1;i<=n;i++)if(!con[i])return false;return true;}int main(){int n,m;cin>>n;m=n+1;p=new bool*[m];for(int i=0;i<=n;i++){p[i]=new bool[m];memset(p[i],false,m*sizeof(bool));}con=new bool[m];cnt=new int[m];memset(con,false,m*sizeof(bool));memset(cnt,0,m*sizeof(int));int a,b;for(int i=0;i<n;i++){cin>>a>>b;p[b][a]=p[a][b]=true;}DFS(1,n);bool flag=connect(n);int oddnum=0;if(!flag)cout<<"false"<<endl;else{for(int j=1;j<=n;j++)if(cnt[j]%2)oddnum++;if(oddnum==0||oddnum==2)cout<<"true"<<endl;elsecout<<"false"<<endl;}for(int i=0;i<m;i++)delete [] p[i];delete [] p;delete [] con;delete [] cnt;//system("pause");return 0;}
1 0
- 华为OJ(笔画)
- 华为OJ(笔画)
- 华为oj 笔画
- 笔画-华为OJ
- 华为oj中级 笔画
- 一笔画问题(南阳理工oj)
- 华为OJ(一)
- 华为OJ(二)
- 华为OJ(三)
- 华为OJ(合唱队)
- 华为OJ(四)
- 华为OJ(百钱买百鸡)
- 华为OJ(记负均正)
- 华为OJ(四则运算)
- 华为OJ(线性插值)
- 华为OJ(四)
- 华为OJ(成绩排序)
- 华为OJ(学英语)
- Ubuntu下搭建Ruby On Rails
- 终于创建了我的第一篇文章
- hdu 5379 Mahjong tree(构造)
- 九度oj 1152
- 归并排序(含完整源码)
- 华为OJ(笔画)
- 关于单链表中环的问题
- PS学习笔记----图层锁定
- 在 WinCe 平台读写 ini 文件
- Word Loadder II (***) -- BFS DFS
- QT---设置textedit文本框中某个字符格式
- QT---qtextedit中的光标问题
- python 之 推导式
- 慕课学习C++笔记02-封装(上)