博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DFS Codeforces Round #290 (Div. 2) B. Fox And Two Dots
阅读量:6153 次
发布时间:2019-06-21

本文共 1344 字,大约阅读时间需要 4 分钟。

 

1 /* 2     DFS:每个点四处寻找,判断是否与前面的颜色相同,当走到已走过的表示成一个环 3 */ 4 #include 
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 using namespace std;14 15 const int MAXN = 1e6 + 10;16 const int INF = 0x3f3f3f3f;17 int dx[4] = { 1, -1, 0, 0};18 int dy[4] = { 0, 0, 1, -1};19 char a[55][55];20 int used[55][55];21 int n, m;22 23 bool DFS(int x, int y, int px, int py, char ch)24 {25 used[x][y] = 1;26 for (int i=0; i<=4-1; ++i)27 {28 int tx = x + dx[i];29 int ty = y + dy[i];30 if (tx == px && ty == py) continue;31 if (tx >= 0 && tx <= n-1 && ty >= 0 && ty <=m-1 && a[tx][ty] == ch)32 {33 if (used[tx][ty]) return true;34 if (DFS (tx, ty, x, y, ch)) return true;35 }36 }37 38 return false;39 }40 41 int main(void)42 {43 //freopen ("B.in", "r", stdin);44 45 while (cin >> n >> m)46 {47 memset (used, 0, sizeof (used));48 for (int i=0; i<=n-1; ++i)49 {50 scanf ("%s", &a[i]);51 }52 53 bool flag = false;54 for (int i=0; i<=n-1; ++i)55 {56 for (int j=0; j<=m-1; ++j)57 {58 if (!used[i][j])59 {60 if (DFS (i, j, -1, -1, a[i][j]))61 {62 puts ("Yes"); flag = true; break;63 }64 }65 }66 if (flag) break;67 }68 69 if (!flag) puts ("No");70 }71 72 return 0;73 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4366706.html

你可能感兴趣的文章
service worker之cache实践--sw-precache
查看>>
MySQL成勒索新目标,数据服务基线安全问题迫在眉睫
查看>>
Java程序员之完美代码
查看>>
前端常见算法的JS实现
查看>>
JavaScript 是传值调用还是传引用调用?
查看>>
超级围棋AI ELF OpenGo全面开源!FAIR田渊栋揭秘训练过程
查看>>
敏捷世界中的合规性
查看>>
如何在Kubernetes上运行Apache Flink
查看>>
GitHub推出Scientist,帮助开发者重构关键路径代码
查看>>
使用C#来面向GPU编程
查看>>
Spark 2.4重磅发布:优化深度学习框架集成,提供更灵活的流式接收器
查看>>
GitHub Draft Pull请求支持新的协作流程
查看>>
微软Office 365正式上架Mac App Store
查看>>
三款日志管理工具横向对比:Splunk vs Sumo Logic vs Logstash
查看>>
CodeOne 主题演讲:Java,未来已来
查看>>
containerd项目正式从CNCF毕业
查看>>
改变的六条规则
查看>>
采访Nicole Forsgren博士:DORA与Google就《DevOps促进状态报告》开展合作
查看>>
使用 Python 5 年后,我转向了Go
查看>>
Idris趋近发布1.0版
查看>>