HDU4324——DFS——Triangle LOVE
2015-08-25 15:15
537 查看
http://acm.hdu.edu.cn/showproblem.php?pid=4324
/* 搜索一个三角形,用vector+vis来减少复杂度 */ /************************************************ * Author :Powatr * Created Time :2015-8-25 10:42:01 * File Name :E.cpp ************************************************/ #include <cstdio> #include <algorithm> #include <iostream> #include <sstream> #include <cstring> #include <cmath> #include <string> #include <vector> #include <queue> #include <deque> #include <stack> #include <list> #include <map> #include <set> #include <bitset> #include <cstdlib> #include <ctime> using namespace std; #define lson l, mid, rt << 1 #define rson mid + 1, r, rt << 1 | 1 typedef long long ll; const int MAXN = 2000 + 10; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; char mp[MAXN][MAXN]; int vis[MAXN][MAXN]; int n; vector<int> G[MAXN]; bool dfs(int x, int y, int step, int ex, int ey) { if(step == 2 && y == ex) return true; if(vis[x][y]) return false; vis[x][y] = 1; if(step >= 2) return false; for(int i = 0; i < G[y].size(); i++){ int v = G[y][i]; // printf("%d %d\n", y, v); if(!dfs(y, v, step + 1, ex, ey)); else return true; } return false; } bool solve() { for(int i = 1; i <= n; i++) for(int j = 0; j < G[i].size(); j++){ int v = G[i][j]; if(!vis[i][v]) if(dfs(i, v, 0, i, v)){ return true; } } return false; } int main(){ int T; scanf("%d", &T); for(int cas = 1; cas <= T; cas++){ memset(vis, 0, sizeof(vis)); scanf("%d", &n); for(int i = 0; i <= n; i++) G[i].clear(); for(int i = 1; i <= n; i++) scanf("%s", mp[i] + 1); for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ if(mp[i][j] == '1'){ G[i].push_back(j); } } } printf("Case #%d: ", cas); if(solve()) puts("Yes"); else puts("No"); } return 0; }
相关文章推荐
- lucene 实现word,pdf全文检索源码
- IP地址划分
- 弹幕视频社交时代:如何玩转弹幕文化
- 利用hadoopstreaming&python导入数据库数据
- shared_ptr 例子
- APP推广第一步:五大ASO优化方法
- jQuery实现下滑菜单导航效果代码
- 微信支付redirect uri参数错误
- 图像角点检测的Fast算法(OpenCV文档)
- c++中类对象不能访问类的私有成员变量
- MFC常用控件ID
- HDU4325——二分——Flowers
- Android 多分辨率机适应
- Compilation error in Node.getTextContent for jdk 6
- 两种方式生成二维码
- 十六进制数反转
- 拾遗
- 数据结构--二叉搜索树
- 敏捷软件开发:原则、模式与实践——第1章 敏捷实践
- 微信接口基类