ACdream 1078 Cutting Figure (dfs)
来源:互联网 发布:股票牛人 知乎 编辑:程序博客网 时间:2024/06/03 20:03
题目链接:
ACdream 1078
题意:
给你一个
题解:
其实只有三种情况。
第一种是‘#’数量少于
第二种是只需要割一个点就可以的。
最后一种情况是只需要割两个点就可以。
然后判断‘#’个数,如果小于
否则枚举割一个点的位置,用
AC代码:
#include<bits/stdc++.h>using namespace std;const int N = 55;int n,m;int mp[N][N];bool vis[N][N];void dfs(int x, int y){ vis[x][y] = 1; if(0 <= x - 1 && mp[x - 1][y] && !vis[x - 1][y]) { dfs(x - 1, y); } if(x + 1 < n && mp[x + 1][y] && !vis[x + 1][y]) { dfs(x + 1, y); } if(0 <= y - 1 && mp[x][y - 1] && !vis[x][y - 1]) { dfs(x, y - 1); } if(y + 1 < m && mp[x][y + 1] && !vis[x][y + 1]) { dfs(x, y + 1); }}int cal(int x, int y){ int cnt=0; memset(vis, 0, sizeof(vis)); vis[x][y] = 1; for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { if(mp[i][j] && !vis[i][j]) { dfs(i,j); cnt++; } } } return cnt;}int solve(){ for(int i = 0; i < n; i++) { for(int j = 0; j < m; j++) { if(cal(i, j)>1) return 1; } } return 0;}int main(){ int cnt = 0; char ch; scanf("%d%d",&n,&m); for(int i=0; i<n; i++) { for(int j=0;j<m;j++) { cin >> ch; if(ch=='#') { mp[i][j] = 1; } else { mp[i][j] = 0; } cnt += mp[i][j]; } } if(cnt<3) { puts("-1"); } else if(solve()) { puts("1"); } else { puts("2"); } return 0;}
阅读全文
1 0
- ACdream 1078 Cutting Figure (dfs)
- codeforces----193A Cutting Figure
- CodeForces 193A Cutting Figure
- Codeforces 193A. Cutting Figure
- codeforces 194C Cutting Figure
- Codeforces 405 E. Graph Cutting ( DFS )
- ACdream群赛 Apple (dfs+博弈论)
- POJ2378:Tree Cutting(DFS)
- poj2378(dfs) Tree Cutting
- acdream 1105(dfs)
- acdream 1707(dfs)
- ACdream dfs 专题
- uva 818 Cutting Chains(dfs+状态压缩)
- UVA 818 Cutting Chains (暴力二级制枚举+dfs)
- bzoj3391 [Usaco2004 Dec]Tree Cutting网络破坏(dfs)
- ACdream 1187 Rational Number Tree(搜索:DFS)
- Sum vs Product(ACdream) —— dfs
- ACDREAM 05A Hand in hand(DFS专场)
- HDU2586 How far away? —— 倍增LCA
- Linux命令top单个进程内存翻译
- git操作手册
- AndroidStudio关于项目构建
- 逗号分隔字符串转List<Long>
- ACdream 1078 Cutting Figure (dfs)
- Hdu 2196 Computer【树型Dp】经典题
- 从map中取出最大或最小value值对应的key值
- CentOS 6.6 下源码编译安装MySQL 5.7.5
- 虚拟现实的前世今生
- 常用的XMPP 客户端和服务端对比
- 查看linux磁盘空间
- Node.js 用模块组织代码
- 容器技术简介