HDU6165 FFF at Valentine【BFS】
来源:互联网 发布:游戏运营数据分析报告 编辑:程序博客网 时间:2024/05/19 04:07
题意:一个有向图,问任意两点间是否存在一条路可到达另一个点(A->B 或 B->A 有一条路即可)
思路:官方题解,缩点为DAG,则如果有两个及以上出度为0的点则有不能走到同一个点的点对,真是巧妙
暴力可破,从每个点开始bfs,发现一对新的关系,就记录下,最后关系有n*(n-1) / 2的话,满足题意
#include<bits/stdc++.h>using namespace std;vector<int> v[1005];int line[1005][1005],vis[1005];int ans;void bfs(int st){ queue<int> q; while(!q.empty()) q.pop(); q.push(st); memset(vis,0,sizeof vis); vis[st] = 1; while(!q.empty()) { int x = q.front();q.pop(); for(int i = 0; i < v[x].size(); i++) { int y = v[x][i]; if(vis[y] == 0) { vis[y] = 1; q.push(y); if(line[st][y] == 0) { line[st][y] = line[y][st] = 1; ans++; } } } }}int main(){ int T,n,m;cin>>T; while(T--) { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) v[i].clear(); while(m--) { int x,y; scanf("%d%d",&x,&y); v[x].push_back(y); } memset(line,0,sizeof line); ans = 0; for(int i = 1; i <= n; i++) bfs(i); if(ans == n*(n-1)/2) printf("I love you my love and our love save us!\n"); else printf("Light my fire!\n"); } return 0;}
阅读全文
0 0
- HDU6165 FFF at Valentine【BFS】
- HDU6165-FFF at Valentine
- HDU6165-FFF at Valentine
- HDU6165 FFF at Valentine(爆搜)
- hdu6165 FFF at Valentine【强联通缩点+拓扑排序】
- hdu6165 FFF at Valentine 强联通分量+拓扑排序
- hdu6165 FFF at Valentine 强联通缩点
- hdu6165-tarjan&&多校9&&模板修正|XJB暴力-FFF at Valentine
- HDU6165 FFF at Valentine(并查集+tarjan缩点+拓扑排序)
- hdu6165 FFF at Valentine 2017多校第九场1005 dfs
- HDU6165 FFF at Valentine(深搜dfs,2017 HDU多校联赛 第9场)
- HDU6165 FFF at Valentine(深搜dfs,2017 HDU多校联赛 第9场)
- HDU_6165_ FFF at Valentine
- FFF at Valentine HDU
- FFF at Valentine HDU
- HDU 6165 FFF at Valentine
- HDU-6165 FFF at Valentine
- HDU 6165 FFF at Valentine
- 异步协程处理requests阻塞
- java提高篇(八)-----详解内部类
- lightoj 1011 Marriage Ceremonies (KM模板题)
- ReactNative-综合案例(01)
- 这个“打工二代”凭啥成了高层次人才
- HDU6165 FFF at Valentine【BFS】
- UVA
- MOB短信验证
- 关于webservice的认识和spring的整合(一)
- QListWidget的使用
- Git使用详解
- Tensorflow介绍以及与其他框架的对比
- ReactNative-常用命令
- HDU-2017 多校训练赛9-1002-Ch’s gift