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