HDU_6165 FFF at Valentine 【DFS】
来源:互联网 发布:java 安装 tensorflow 编辑:程序博客网 时间:2024/05/29 14:47
题目链接
题目描述
这题目真的是让人头疼,意思就是给你一个有向图,问是否任意两点可以到达(正反都可以)。
解题思路
深搜遍历出所有的点可以到达的点进行一个标记,如果一点可以到达另一点,则标记可以到达,最后遍历一个n^2,判断是否两点之间无一条通路,如果有就说明这两个情侣没法见面,输出Light my fire!,否则输出I love you my love and our love save us!
代码部分
#include <bits/stdc++.h>using namespace std;const int maxn = 1e3 + 10;typedef long long ll;vector <int> G[maxn]; //尾插法建立链表bool vis[maxn][maxn];bool bj[maxn];void dfs(int s, int e){ bj[e] = true; for(int i = 0; i < (int)G[e].size(); ++ i) { int t = G[e][i]; if(bj[t] == false) { vis[s][t] = true; dfs(s, t); } }}int main(){ ios::sync_with_stdio(false); int t; cin >> t; while(t --) { int n, m, u, v; cin >> n >> m; for(int i = 1; i <= n; ++ i) G[i].clear(); for(int i = 1; i <= m; ++ i) { cin >> u >> v; G[u].push_back(v); } memset(vis, false, sizeof(vis)); for(int i = 1; i <= n; ++ i) { memset(bj, false, sizeof(bj)); dfs(i, i); } bool flag = true; for(int i = 1; i <= n; ++ i) { for(int j = 1; j <= n; ++ j) { if(i != j) { if(vis[i][j] == false && vis[j][i] == false) { flag = false; break; } } } if(flag == false) break; } if(flag) puts("I love you my love and our love save us!"); else puts("Light my fire!"); } return 0;}
阅读全文
1 0
- HDU_6165 FFF at Valentine 【DFS】
- HDU6165-FFF at Valentine
- HDU6165-FFF at Valentine
- 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
- HDU 6165 FFF at Valentine
- HDU6165 FFF at Valentine【BFS】
- hdu--6165--FFF at Valentine
- HDU6165 FFF at Valentine(爆搜)
- HDU 6165 FFF at Valentine
- hdu 6165 FFF at Valentine
- hdu-6165 FFF at Valentine
- [HDU 6165]FFF at Valentine
- HDU-6165-FFF at Valentine
- 三种主流数据库区别
- Mybatis传多个参数(三种解决方案)
- python批量修改文件名称
- excel导入导出
- Excel读取
- HDU_6165 FFF at Valentine 【DFS】
- 算法题/创建二叉树
- POI导出EXCEL经典实现
- Docker 安装 Gitlab
- c语言中typeof关键字
- 谈Linux的总线、设备、驱动模型——让天堂的归天堂,让尘土的归尘土
- 敌兵布阵 hdu 1166
- java 无法加载主类
- 如何使用git比较两次commit之间的差异文件