HDU 6016 - Count the Sheep

Posted nicetomeetu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 6016 - Count the Sheep相关的知识,希望对你有一定的参考价值。

题意:

  男羊和女羊之间有朋友关系,找出关系满足A->B->C->D,且A,B,C,D都不同的关系的个数(排列)

分析:

   枚举B,对于每一个B枚举C

   每一个B->C的贡献 = (B.size - 1) * (C.size - 1)

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define LL long long
 4 const int MAXN = 100005;
 5 int t, n, m, k;
 6 int C[MAXN];//女羊的朋友
 7 vector<int> G[MAXN]; //男羊->女羊
 8 int main()
 9 {
10     scanf("%d", &t);
11     while (t--)
12     {
13         memset(C, 0, sizeof(C));
14         scanf("%d%d%d", &n, &m, &k);
15         for (int i = 1; i <= n; i++) G[i].clear();
16         memset(C, 0, sizeof(C));
17         for (int i = 1; i <= k; i++)
18         {
19             int x, y; scanf("%d%d", &x, &y);
20             C[y]++;
21             G[x].push_back(y);
22         }
23         LL ans = 0;
24         for (int x = 1; x <= n; x++)
25         {
26             LL A = G[x].size()-1;
27             for (int j = 0; j < G[x].size(); j++)
28                 ans += A*(C[G[x][j]]-1);
29         }
30         printf("%lld\n", 2*ans);
31     }
32 }

 

以上是关于HDU 6016 - Count the Sheep的主要内容,如果未能解决你的问题,请参考以下文章

hdu 6016

hdu 6016

Count the string(hdu3336)

HDU 3336——Count the string

HDU4372 Count the Buildings

hdu 3336 Count the string