题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6016

题意:给定男羊和女羊的朋友关系,即给定一个图,问从任意一只羊开始连续数四只不相同的羊的方法数。

这题挺简单的就是需要动一下脑子,我们只要找到关系A-B-C-D即可,且关系址建立在男女羊之间。

就是说我们只要找到 男羊-女羊-男羊-女羊,或者 女羊-男羊-女羊-男羊 即可。

于是那只要找到任意一种方式的总数然后乘2即可。

拿后一种关系为例。

ans[i]表示i号女羊有几个男羊朋友vc[i]存储与i号男羊有关系的女羊。

for(int i = 1 ; i <= n ; i++) {

int count = vc[i].size() - 1;

for(int j = 0 ; j <= count ; j++) {

sum += ((ans[vc[i][j]] - 1) * count);

}

}

#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <cstdio>
using namespace std;
typedef long long ll;
const int M = 1e5 + 10;
vector<int>vc[M];
int ans[M];
int main() {
int t;
scanf("%d" , &t);
while(t--) {
int n , m , k;
scanf("%d%d%d" , &n , &m , &k);
for(int i = 1 ; i <= n ; i++) {
vc[i].clear();
}
for(int i = 1 ; i <= m ; i++) {
ans[i] = 0;
}
while(k--) {
int a , b;
scanf("%d%d" , &a , &b);
ans[b]++;
vc[a].push_back(b);
}
ll sum = 0;
for(int i = 1 ; i <= n ; i++) {
int count = vc[i].size() - 1;
for(int j = 0 ; j <= count ; j++) {
sum += (ll)((ans[vc[i][j]] - 1) * count);
}
}
printf("%lld\n" , sum * 2);
}
return 0;
}

最新文章

  1. SQLite.Net-PCLUSING SQLITE IN WINDOWS 10 UNIVERSAL APPS
  2. IOS开发基础知识--碎片45
  3. Java多线程系列--“JUC原子类”04之 AtomicReference原子类
  4. C#程序
  5. Asp.Net Web API 2第八课——Web API 2中的属性路由
  6. NopCommerce适应多数据库方案
  7. 使用C#发送正文带图片邮件
  8. URAL 1158 AC自动机上的简单DP+大数
  9. HDU 3127 WHUgirls【二维完全背包】
  10. iframe 刷新
  11. CSS FIXED porn javhd
  12. iOS 面试题 3
  13. 场景2 nginx 错误日志格式:
  14. linux 学习:环境变量设置
  15. HBuilder连接IOS手机打开APP测试
  16. 策略模式(Stratety)
  17. 第3章 结束会话端点(EndSession Point) - IdentityModel 中文文档(v1.0.0)
  18. 史诗级Java资源大全中文版
  19. 了解一下RabbitMQ
  20. [转]Windows下安装storm-0.9.1

热门文章

  1. Linux打开网易云的问题
  2. gcd, exgcd的证明
  3. jQuery插件之路(二)——轮播
  4. Zookeeeper环境搭建(二)
  5. windbg 使用与技巧
  6. 高速开车换底盘记:Windows 与 Linux 部署都抗住了,但修车任务艰巨
  7. (三十五)c#Winform自定义控件-Tab页
  8. Java 在spring cloud中使用Redis,spring boot同样适用
  9. 域名、主机名、网站名以及 URL 基础概念
  10. git码云的使用基础(为了以后更好的协同操作)