网站建设团队介绍怎么写,北京外贸网站开发,二类电商有哪些平台,未来的软件开发方向是什么在无向图中#xff0c;如果三个不同的顶点之间都有边#xff0c;则称他们组成了一个三角形。 在一张无向图 G 中#xff0c;有且仅有一个三角形。现在你的任务是找到它。 输入格式 第一行两个数 $n, m$#xff0c;表示 G 的顶点个数和边的条数。 接下来 $m$ 行#xff0c;… 在无向图中如果三个不同的顶点之间都有边则称他们组成了一个三角形。 在一张无向图 G 中有且仅有一个三角形。现在你的任务是找到它。 输入格式 第一行两个数 $n, m$表示 G 的顶点个数和边的条数。 接下来 $m$ 行每行两个数 $i, j$ 表示点 $i$ 和 $j$ 之间有一条边。题目保证没有重边和自环。 输出格式 输出一行三个整数 $i j k$ 表示三角形的三个顶点。 数据范围 对于 $20\%$的数据 $n 200$。 对于另外 $30\%$ 的数据 $n \le 2000$。 对于全部数据 $n, m \le 100000$。 样例输入1 3 3
1 2
2 3
3 1 样例输出1 1 2 3 样例输入2 4 4
1 2
2 3
3 1
1 4 样例输出2 1 2 3 #includebits/stdc.h
using namespace std;
const int N2010;
int n,m,ans1,ans2,ans3,mp[N][N],u[N],v[N];
int main(){scanf(%d%d,n,m);for(int i1;im;i){scanf(%d%d,u[i],v[i]);mp[u[i]][v[i]]mp[v[i]][u[i]]1;}bool flag0;for(int i1;im;i){int xu[i],yv[i];for(int j1;jn;j){if(jx||jy) continue;if(mp[x][j]mp[y][j]){ans1x; ans2y; ans3j;flag1; break;}}if(flag) break;}if(ans1ans2) swap(ans1,ans2);if(ans1ans3) swap(ans1,ans3);if(ans2ans3) swap(ans2,ans3);printf(%d %d %d\n,ans1,ans2,ans3);return 0;
} 转载于:https://www.cnblogs.com/huihao/p/8683418.html