CodeForces 489 D.Unbearable Controversy of Being(组合数学+bfs)
2018-01-09 20:37
387 查看
Description
给出一张n个点m条边的有向图,问其中平行四边形的数量,平行四边形指的是存在四个不同的节点a,b,c,d满足a→b,b→c,a→d,d→c,计数时不考虑b,d的相对顺序
Input
第一行两个整数n,m,之后m行每行输入两个整数u,v表示一条有向边u→v(1≤n≤3000,0≤m≤30000)
Output
输出平行四边形个数
Sample Input
5 4
1 2
2 3
1 4
4 3
Sample Output
1
Solution
枚举a,把a的所有一步可达点入队,然后对队列中每个点u,给其可达点v的次数加一,表示v点作为c点可以有多少点作为b点或d点,从中选俩做b,d即可,时间复杂度O(m)
Code
给出一张n个点m条边的有向图,问其中平行四边形的数量,平行四边形指的是存在四个不同的节点a,b,c,d满足a→b,b→c,a→d,d→c,计数时不考虑b,d的相对顺序
Input
第一行两个整数n,m,之后m行每行输入两个整数u,v表示一条有向边u→v(1≤n≤3000,0≤m≤30000)
Output
输出平行四边形个数
Sample Input
5 4
1 2
2 3
1 4
4 3
Sample Output
1
Solution
枚举a,把a的所有一步可达点入队,然后对队列中每个点u,给其可达点v的次数加一,表示v点作为c点可以有多少点作为b点或d点,从中选俩做b,d即可,时间复杂度O(m)
Code
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<ctime> #include<bitset> using namespace std; typedef long long ll; typedef pair<int,int>P; const int INF=0x3f3f3f3f,maxn=3005; int n,m,num[maxn]; vector<int>g[maxn]; ll bfs(int s) { queue<int>que; memset(num,0,sizeof(num)); for(int i=0;i<g[s].size();i++)que.push(g[s][i]); while(!que.empty()) { int u=que.front(); que.pop(); for(int i=0;i<g[u].size();i++) if(g[u][i]!=s)num[g[u][i]]++; } ll res=0; for(int i=1;i<=n;i++)res+=(ll)num[i]*(num[i]-1)/2; return res; } int main() { scanf("%d%d",&n,&m); while(m--) { int u,v; scanf("%d%d",&u,&v); g[u].push_back(v); } ll ans=0; for(int i=1;i<=n;i++)ans+=bfs(i); printf("%I64d\n",ans); return 0; }
相关文章推荐
- [codeforces-543B]bfs求最短路
- CodeForces 543B Destroying Roads(最短路BFS)
- CodeForces 329B(BFS)
- CodeForces - 540C Ice Cave(BFS)
- CodeForces - 689B Mike and Shortcuts (BFS)
- Codeforces 676D Theseus and labyrinth 模拟+bfs
- Codeforces 128 A Statues【预处理+Bfs】
- BFS (图)——Codeforces 788 C. The Great Mixing
- Codeforces 463D Gargari and Permutations(BFS)
- CodeForces - 330D Biridian Forest(逆向bfs)
- codeforces 601A The Two Routes(BFS)
- 【Codeforces】C. Ice Cave(bfs)
- codeforces 558C C. Amr and Chemistry(bfs)
- CodeForces - 540C Ice Cave(BFS)
- Codeforces 877 D. Olya and Energy Drinks (bfs)
- Codeforces 782C Andryusha and Colored Balloons(BFS)
- codeforces 590C C. Three States(bfs+连通块之间的最短距离)
- CodeForces 1208 C. Text Editor BFS广搜
- Codeforces 793b B. Igor and his way to work 觉得大神写的3维bfs太复杂,突然发现这题是连连看算法。
- Codeforces 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest J题(BFS)