Codeforces Round #407 (Div. 2)-D. Weird journey
来源:互联网 发布:排序java 编辑:程序博客网 时间:2024/05/19 14:54
题目连接 http://codeforces.com/contest/789
开始以为是一笔画问题,突然想起来以前想写一笔画问题没有写,给定 m,n,然后n是边的个数,要求从一个点开始,经历(n-2)条边两次。经历两条边一次。计算连通度即可。注意区分自环
#include <bits/stdc++.h>using namespace std;const int maxn=1000090;vector<int>G[maxn];int vis[maxn];void add(int u,int v){ G[u].push_back(v); G[v].push_back(u);}bool dfs(int a){ if(vis[a]) return false; vis[a]=true; for(int i=0;i<G[a].size();i++) { int s=G[a][i]; dfs(s); } return true;}int main(){ int m,n; int a,b; long long du[maxn]; long long cnt,cnt2; long long dd[maxn]; cin>>m>>n; memset(vis,0,sizeof(vis)); memset(du,0,sizeof(du)); memset(dd,0,sizeof(dd)); cnt=0; cnt2=0; for(int i=1;i<=n;i++) { scanf("%d%d",&a,&b); add(a,b); add(b,a); if(a!=b) { du[a]++; du[b]++; cnt++; } else { dd[a]+=2; cnt2++; } } dfs(a); for(int i=1;i<=m;i++) if(!vis[i]&&(du[i]>0||dd[i]>0)) { printf("0\n"); return 0;//如果没有 //cout<<"no"<<endl; //break; } long long ans=0; ans+=cnt*cnt2; ans+=cnt2*(cnt2-1)/2; for(int i=1;i<=m;i++) { ans+=du[i]*(du[i]-1)/2; } cout<<ans<<endl; return 0;}
0 0
- Codeforces Round #407 (Div. 2) D. Weird journey
- Codeforces Round #407 (Div. 2)-D. Weird journey
- Codeforces Round #407 (Div. 2) D Weird journey [dfs]
- Codeforces Round #407 (Div. 1) B. Weird journey
- Codeforces Round #407 (Div. 1) B. Weird journey
- [欧拉路] Codeforces Round #407 (Div. 1) 788B. Weird journey
- Codeforces Round #407 (Div. 1) B. Weird journey —— dfs + 图
- Codeforces 789D Weird Journey 欧拉图(计数)
- Codeforces Round #374 (Div. 2) C. Journey
- Codeforces Round #374 (Div. 2) C. Journey
- Codeforces Round #374 (Div. 2)C. Journey
- Codeforces Round #374 (Div. 2)-C. Journey
- Codeforces Round #402 (Div. 2) B. Weird Rounding
- Codeforces Round #402 (Div. 2) B. Weird Rounding
- Codeforces Round #402 (Div. 2)B. Weird Rounding【暴力枚举】
- Codeforces Round #402 (Div. 2) B. Weird Rounding(爆搜)
- Codeforces Round #402 (Div. 2) B. Weird Rounding
- codeforces 789 D. Weird journey (欧拉路计数)
- 链栈的基本操作
- vs没有重新生成解决方案的办法
- 链栈
- 函数编程实践记(3)——完美数
- 二叉树的基本操作(四)——关于B-树,B+树,B*树的概念
- Codeforces Round #407 (Div. 2)-D. Weird journey
- bzoj 2054 并查集
- 第三讲 Groovy闭包和对象
- 24 点游戏 c语言
- 程序员励志故事①
- js 生成二维码
- Laravel
- Java中泛型
- 版本控制的使用方法。