CodeForces 193A Cutting Figure
来源:互联网 发布:淘宝童装客服话术 编辑:程序博客网 时间:2024/05/22 01:37
题目大意:
给你一个矩阵,#代表染色,题目输入保证染色区域连通(如果两个区域有重边,说明连通)。问你最少去除多少个点。可以将染色区域分为两部分。如果没有这样的点,输出-1。
5 4#####..##..##..#####
这道题只要想到去除的点肯定小于等于2就很简单了,去找图的关键点即可。
代码如下:
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<algorithm>#include<iostream>using namespace std;int g_x,g_y;char map[55][55];int miv[55][55];int dfn[55][55];int dir[4][2]={{1,0},{0,1},{0,-1},{-1,0}};int dfs(int x,int y,int pre,int dep){ int num=0; miv[x][y]=dfn[x][y]=dep; for(int i=0;i<4;i++) { if(i==3-pre||map[x+dir[i][0]][y+dir[i][1]]!='#') continue; if(!dfn[x+dir[i][0]][y+dir[i][1]]) { num++; if(dfs(x+dir[i][0],y+dir[i][1],i,dep+1)) return 1; if(x==g_x&&y==g_y) { if(num>=2) return 1; } else if(dfn[x][y]<=miv[x+dir[i][0]][y+dir[i][1]]) return 1; miv[x][y]=min(miv[x][y],miv[x+dir[i][0]][y+dir[i][1]]); } else { miv[x][y]=min(miv[x][y],dfn[x+dir[i][0]][y+dir[i][1]]); } } return 0;}int main(){ int n,m,i,j; int cnt=0; //freopen("test.txt","r",stdin); scanf("%d %d\n",&n,&m); for(i=1;i<=n;i++) { gets(map[i]+1); for(j=1;j<=m;j++) if(map[i][j]=='#') cnt++,g_x=i,g_y=j; } if(cnt<=2) {puts("-1");return 0;} if(dfs(g_x,g_y,4,1)) puts("1"); else puts("2");}
- codeforces----193A Cutting Figure
- CodeForces 193A Cutting Figure
- Codeforces 193A. Cutting Figure
- codeforces 194C Cutting Figure
- codeforces A. Cutting Banner
- codeforces 538 A.Cutting Banner
- codeforces 538 A Cutting Banner
- codeforces #300 A. Cutting Banner
- 第一次打CODEFORCES-----A. Cutting Banner
- ACdream 1078 Cutting Figure (dfs)
- contest: Codeforces Round #300, problem: (A) Cutting Banner
- contest: Codeforces Round #300, problem: (A) Cutting Banner
- 538A - Cutting Banner
- A. Cutting Banner
- [python] annotation in a figure
- UVA 10867 Cutting a Polygon
- DP 算法: cutting a rod
- Codeforces 405 E. Graph Cutting ( DFS )
- 给明年依然年轻的我们:道别150万年薪,开始盒饭生活
- 趣题3:葫芦娃
- 使用位与运算,进行偶数 奇数判断
- ONVIF 相关的开源项目
- crontab中执行shell登录数据库
- CodeForces 193A Cutting Figure
- C# 取网站cookie
- 泛型在基类中的应用
- Xcode4.3开发第一个IOS应用实例
- 6_6_天天向上_CC2430
- android中对话框不显示图标
- 数据,信息,知识,智慧分析与对比
- 6_7_天天向上
- 编写一个名为checking的脚步