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

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

思路:一开始用了dfs没过,报的超时,以为真的会超时,最后发现,犯了个以前常犯的老问题,存边的vector开小了,,这道题需要开

(n+m)的vector。

后来又按官方题解做了一遍,官方题解,也就需要脑袋转一下。要找序列:男--女--男--女,或者 女--男--女--男;那么只需要找其中一种,即只找 女(1)--男(2)--女(3)--男(4) 的种数,答案为ans*2。枚举(2)号男羊和与(2)号男羊之间有边的一只(3)号女羊,即可确定

一类序列的种数,ans+=(sheep[i]-1)*(sheep[j]-1)  i与j之间有边。

dfs:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
#define N 100005 vector<int> sheep[*N]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n+m;i++)
sheep[i].clear();
for(int i=;i<k;i++)
{
int a,b;
scanf("%d%d",&a,&b);
sheep[a].push_back(b+n);
sheep[b+n].push_back(a);
}
long long ans=;
for(int i=;i<=n;i++)
{
int way=sheep[i].size()-;
for(int j=;j<sheep[i].size();j++)
{
ans+=(sheep[sheep[i][j]].size()-)*way;
}
}
printf("%I64d\n",ans*);
}
return ;
}

官方做法:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
#define N 100005 vector<int> sheep[*N]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
for(int i=;i<=n+m;i++)
sheep[i].clear();
for(int i=;i<k;i++)
{
int a,b;
scanf("%d%d",&a,&b);
sheep[a].push_back(b+n);
sheep[b+n].push_back(a);
}
long long ans=;
for(int i=;i<=n;i++)
{
int way=sheep[i].size()-;
for(int j=;j<sheep[i].size();j++)
{
ans+=(sheep[sheep[i][j]].size()-)*way;
}
}
printf("%I64d\n",ans*);
}
return ;
}

最新文章

  1. Jmeter之Bean shell使用(二)
  2. ios打包
  3. 用Scrapy爬虫下载图片(豆瓣电影图片)
  4. 想要完全导入swc中的所有类
  5. Andorid手机振动器(Vibrator)的使用
  6. 【quartz】 入门
  7. 朗科U903 低级格式化后,量产错误:read onlypage (控制器芯片群联2251-03)的解决方案
  8. Oracle学习笔记_07_模糊查询
  9. sql数据库快照与恢复 规则绑定
  10. IdentityServer4【Topic】之授权类型
  11. 总结几种清除浏览器的缓存,适用于明明已经修改bug,但是测试人员说问题还存在的情况下
  12. 每日英语:China Bond Trading Dives
  13. yii---进行接受参数
  14. 【Streaming】30分钟概览Spark Streaming 实时计算
  15. 【JS深入学习】——事件代理/事件委托
  16. c# 数据集调试工具插件
  17. ZOJ2201 No Brainer 2017-04-16 19:21 54人阅读 评论(0) 收藏
  18. Python:集合操作总结
  19. quartz.net持久化和集群【转】
  20. php实现二维数组排序array_multisort($ages, SORT_DESC, $home)函数

热门文章

  1. 86. LotusScript中的数组函数
  2. HDU2577 How to Type【DP】
  3. 进程间通信之-共享内存Shared Memory--linux内核剖析(十一)
  4. [JSOI 2016] 最佳团体
  5. bzoj1854 [Scoi2010]游戏——匈牙利算法
  6. gitlab gerrit jenkins CI/CD环境集成
  7. hive 内部表与外部表的区别
  8. MyBatis高级查询 一对多映射
  9. robotframework - 框架做接口自动化post请求
  10. Akka源码分析-Akka-Streams-GraphStage