2815:城堡问题 百炼 求连通子图个数
来源:互联网 发布:网络电视转换数字电视 编辑:程序博客网 时间:2024/05/01 04:18
#include<stdio.h>
#include<string.h>
int map[60][60];
int vis[60][60];
int col[4]={0,-1,0,1};
int row[4]={-1,0,1,0};//西,北,东,南
int val[4]={1,2,4,8};
int m,n;
int dfs(int p){
int a=p/n,b=p%n;
//printf("%d```%d\n",a,b);
vis[a][b]=1;
int ans=1;
for(int i=0;i<4;i++){
int x=a+col[i],y=b+row[i];
if(x>=0&&y>=0&&x<m&&y<n){
if(!vis[x][y]&&!(map[a][b]&val[i])){
ans+=dfs(x*n+y);
}
}
}
return ans;
}
int main(){
scanf("%d%d",&m,&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
scanf("%d",&map[i][j]);
memset(vis,0,sizeof(vis));
int cnt=0,max=0,ans=0;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++){
if(!vis[i][j]){
cnt++;
ans=dfs(i*n+j);
if(ans>max) max=ans;
}
}
printf("%d\n%d\n",cnt,max);
return 0;
}
- 2815:城堡问题 百炼 求连通子图个数
- 百炼-2815-城堡问题-DFS
- 百炼-2815-城堡问题-C语言-递归算法
- 百炼城堡问题-栈的解法
- 无向图求连通块的个数问题
- 迷宫城堡 【求SCC 个数】
- 一个图的连通子图个数
- 图 求强连通分支子图
- 百练 2815 城堡问题
- 百练2815:城堡问题
- hdu 1269 迷宫城堡 tarjan算法求有向图的强连通分量
- hdu4496 求连通分量个数
- 区域连通个数问题
- tajian求强连通——迷宫城堡
- HDU - 1269 - 迷宫城堡 (tarjan求强连通分量)
- [HDU1269]迷宫城堡(Tarjan求强连通分量)
- HDU 1269 迷宫城堡 简单求连通块
- hdu1269迷宫城堡(tarjan求强连通分量模板)
- EM算法[The EM Algorithm]
- Numbering Paths 统计任意两点间路的数量 小范围数据floyd变体
- Socket
- C#小练习(判断某年是否为闰年)
- 第二次实验规划--考虑表情变化的动态特性和局部性
- 2815:城堡问题 百炼 求连通子图个数
- 如何创建一个CSS3 Ajax加载图标没有图像
- Redundant Paths poj&hoj 割边 tarjan
- 计算机经典书籍电子书合集(适合计算机学生学习以及程序员笔试、面试) .
- POJ 1191 棋盘分割 (记忆化搜索)
- HTML5新攻略:如何使用自定义属性
- android 计算器开发
- 命令模式(Command)----行为笔记
- 大端小端