您的位置:首页 > 其它

CodeForces 489D Unbearable Controversy of Being

2014-11-18 14:10 330 查看
题意:

给出一个n个节点m条边的有向图,求如图所示的菱形的个数。

#include <cstdio>
#include <vector>

using namespace std;

const int maxn = 3000 + 10;
bool G[maxn][maxn];
vector<int> nxt[maxn];

int main()
{
//freopen("in.txt", "r", stdin);
int n, m;
scanf("%d%d", &n, &m);
for(int i = 0; i < m; ++i)
{
int a, b;
scanf("%d%d", &a, &b);
G[a][b] = true;
nxt[a].push_back(b);
}

int ans = 0;
for(int a = 1; a <= n; ++a)
for(int c = 1; c <= n; ++c)
{
if(a != c)
{
int r = 0;
for(int b = 0; b < nxt[a].size(); ++b)
{
if(nxt[a][b] != a && nxt[a][b] != c && G[nxt[a][b]][c])
r++;
}
ans += r*(r-1)/2;
}
}

printf("%d\n", ans);

return 0;
}


代码君
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: