您现在的位置是:主页 > news > 十大高端网站定制设计/推广软件

十大高端网站定制设计/推广软件

admin2025/6/6 21:09:30news

简介十大高端网站定制设计,推广软件,自媒体横行还有做网站,微网站开发需要几个人题意:给定一个无向图的关系,判定是否存在一条从M点出发回到0点并且走遍所有边的通路,也即欧拉通路。 解法:该题如果当出发点就为0点话就等效于是否存在欧拉回路了。欧拉通路的判定条件为:连通的无向图中,度…

十大高端网站定制设计,推广软件,自媒体横行还有做网站,微网站开发需要几个人题意:给定一个无向图的关系,判定是否存在一条从M点出发回到0点并且走遍所有边的通路,也即欧拉通路。 解法:该题如果当出发点就为0点话就等效于是否存在欧拉回路了。欧拉通路的判定条件为:连通的无向图中,度…

题意:给定一个无向图的关系,判定是否存在一条从M点出发回到0点并且走遍所有边的通路,也即欧拉通路。

解法:该题如果当出发点就为0点话就等效于是否存在欧拉回路了。欧拉通路的判定条件为:
连通的无向图中,度为奇数节点的个数为0个或者是2个。
由于该题限定了起点和端点,因此度为奇数的点只能够由两个,且为M和0。当M==0时,奇数节点个数为0个符合题意,此时将构成一条欧拉回路。

代码如下:

#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;int N, M;
int deg[25];
vector<int>v;int main() {char ss[1000];int length ,cnt, can;while (scanf("%s", ss), ss[0] != 'E') {scanf("%d %d", &M, &N);getchar(); // 读掉末尾的换行
        v.clear();cnt = 0, can = 1;memset(deg, 0, sizeof (deg));for (int i = 0; i < N; ++i) {gets(ss);int t;char *p = strtok(ss, " ");while (p) {t = atoi(p);++deg[i], ++deg[t], ++cnt;p = strtok(NULL, " ");}}for (int i = 0; i < N; ++i) {if (deg[i] & 1) {v.push_back(i);    }}if (v.size() > 2) {puts("NO");} else if (v.size() == 2){if (v[0] == 0 && v[1] == M) {printf("YES %d\n", cnt);} else {puts("NO");}} else {if (M == 0) {printf("YES %d\n", cnt);} else {puts("NO");}}scanf("%s", ss);}return 0;    
}

 

转载于:https://www.cnblogs.com/Lyush/archive/2013/03/26/2983337.html