题目:

http://39.106.164.46/problem.php?id=1033

代码如下:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#include<set>
#define MAX 505
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;int n,m;
int mp[MAX][MAX],vis[MAX][MAX],dir[4][2]={{0,1},{0,-1},{-1,0},{1,0}};
int maxx,maxy,minx,miny;
char ch[MAX][MAX];bool judge(int x,int y){if(x<1||x>n||y<1||y>m) return false;return true;
}void dfs(int x,int y){vis[x][y]=1;maxx=max(maxx,x);maxy=max(maxy,y);minx=min(minx,x);miny=min(miny,y);for(int i=0;i<4;i++){int xx=x+dir[i][0],yy=y+dir[i][1];if(judge(xx,yy)&&mp[xx][yy]==1&&vis[xx][yy]==0){dfs(xx,yy);}}
}int main(){while(scanf("%d %d",&n,&m)!=EOF){memset(mp,0,sizeof(mp));for(int i=1;i<=n;i++){scanf("%s",ch[i]+1);}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){mp[i][j]=ch[i][j]-'0';}}for(int j=1;j<=m;j++){for(int i=1;i<=n;i++){if(mp[i][j]==1&&vis[i][j]==0){maxx=maxy=0;minx=miny=INF;dfs(i,j);printf("%d %d\n",maxx-minx+1,maxy-miny+1);for(int k=minx;k<=maxx;k++){for(int h=miny;h<=maxy;h++){printf("%d",mp[k][h]&&vis[k][h]);}printf("\n");}}}}}return 0;
}

PIPIOJ 1033: 拆字游戏 dfs连通分量相关推荐

  1. hiho #1474 : 拆字游戏(dfs)@

    #1474 : 拆字游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Kui喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸&qu ...

  2. 1033: 拆字游戏

    题目描述 PiPi喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸",PiPi的语文学的不是很好,于是她决定使用编程的方式来解决这个问题. 给出一个01矩阵 ...

  3. hiho #1474 拆字游戏(dfs,记录状态)

    #1474 : 拆字游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Kui喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸&qu ...

  4. SDOI2015寻宝游戏 dfs序+set

    SDOI2015寻宝游戏 好像是一道虚树入门题? 虚树???不会不会我弱死了.. Solution: 关键点间的最小路径,就是在保证尽量少走重复路的前提下走出来的一条经过所有关键点的路径. 基于这个思 ...

  5. cdoj 1252 24点游戏 dfs

    24点游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1252 Descr ...

  6. 水管工游戏——dfs

    问题描述: 水管工游戏是指如下图中的矩阵中,一共有两种管道,一个是直的,一个是弯的,所有管道都可以自由旋转,最终就是要连通入水口可出水口.其中的树为障碍物. 方案: 输入格式:输入的第一行为两个整数N ...

  7. HDU 2209 翻纸牌游戏(DFS)

    题目链接 Problem Description 有一种纸牌游戏,很有意思,给你N张纸牌,一字排开,纸牌有正反两面,开始的纸牌可能是一种乱的状态(有些朝正,有些朝反),现在你需要整理这些纸牌.但是麻烦 ...

  8. 2021.8.12携程笔试第三题:建树游戏DFS

    2021.8.12携程笔试 讨论区 在做最后一题的时候把题意看错了,悔之莫及,故记录此文引以为戒! 建树游戏 问题描述 有n个节点和n-1条边,形成一棵树,每个节点有一个权值.把其中一条边删除就形成了 ...

  9. 力扣 174. 地下城游戏 DFS + Python

    原题链接: 力扣 备注:最初做本题目是用的动态规划:在做了一些DFS题目之后,发现本题也可以用DFS来做. 一 特别注意 1. 需要特别注意:假设初始时刻的健康点数为Init,那么在进行下一步搜索之前 ...

最新文章

  1. Mac下如何显示隐藏文件/文件夹
  2. 主流深度学习框架对比(TensorFlow、Keras、MXNet、PyTorch)
  3. html仿百度页面代码_百度优化需要注意的4点
  4. Silverlight 中datagrid控件-- 通过设置数据虚拟化加速显示
  5. github 建立_建立在线社区:GitHub教师
  6. 原来 Sql Server 的存储过程是可以调试的
  7. PHP中extract()函数的定义和用法
  8. linux64bit安装mysql、jdk、nodejs、nginx笔记
  9. 20172303 2018-2019-1《程序设计与数据结构》第7周学习总结
  10. matlab2c使用c++实现matlab函数系列教程-harmmean函数
  11. DreamweaverCS6手把手教你安装并破解
  12. Python调用搜狗语音API实现文字转音频
  13. 度量学习中的马氏距离
  14. 如何创建CGColorRef在view.layer.borderColor上使用
  15. 微软android桌面壁纸,微软桌面(com.microsoft.launcher) - 6.210402.0.960830 - 应用 - 酷安
  16. 有多厉害?首互联网卫星发射 飞机高铁WiFi就靠它了
  17. git中submodule子模块的添加、使用和删除
  18. rosnode not fount 报错解决
  19. MYSQL命令集大全
  20. nfphosting注册教程,超低价VPS商家,年付4美元,支持支付宝

热门文章

  1. matlab中nnt,基于MATLAB的边坡稳定性评价方法
  2. 这24款效率办公神器,简直不要太强大!
  3. 亿信华辰讲述如何做好客商主数据管理
  4. Redis分布式锁的实现以及原理
  5. 一分钟搞定触手app主页酷炫滑动切换效果
  6. 魏晋南北朝书法家钟繇、王羲之、王献之
  7. Java 枚举(enum) 详解7种常见的用法<详细>
  8. 摩申网络2017年7月5日游戏新闻
  9. 广州铁路警方2019年春运安保工作全面部署启动
  10. 计算机全能基础应用知识,[电脑基础知识]计算机全能大赛-观众题.ppt