【题目链接】:http://hihocoder.com/problemset/problem/1474

【题意】

【题解】

题目的意思是说,那个块在最左端先出现,就先处理那个块;
每个连通块,处理出最下的行标和最上的行标,以及最左的列标和最右的列表;
把在这个连通块里面的数字做上标记就好(注意不要输出其他连通块的1)

【Number Of WA】

0

【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)typedef pair<int,int> pii;
typedef pair<LL,LL> pll;const int tx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int ty[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 510;int a[N][N],n,m,b[N][N],tot,xx,xy,dx,dy;
char s[N];void dfs(int x,int y)
{if (a[x][y]==0) return;a[x][y] = 0,b[x][y] = tot;if (x>dx) dx = x;if (x<xx) xx = x;if (y>dy) dy = y;if (y<xy) xy = y;rep1(i,1,4)dfs(x+tx[i],y+ty[i]);
}void out()
{cout << dx-xx+1<<' '<<dy-xy+1<<endl;rep1(i,xx,dx){rep1(j,xy,dy)if (b[i][j]==tot)cout<<1;elsecout<<0;cout << endl;}
}int main()
{//freopen("F:\\rush.txt","r",stdin);ios::sync_with_stdio(false),cin.tie(0);//scanf,puts,printf not usecin >> n >> m;rep1(i,1,n){cin >> (s+1);rep1(j,1,m)if (s[j]=='1')a[i][j] = 1;elsea[i][j] = 0;}rep1(j,1,m){rep1(i,1,n)if (a[i][j]){tot++;xx = i,xy = j,dx=i,dy=j;dfs(i,j);out();}}return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7626375.html

【hihocoder 1474】拆字游戏相关推荐

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

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

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

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

  3. #1474 : 拆字游戏

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

  4. 暴力/图论 hihoCoder 1179 永恒游戏

    题目传送门 1 /* 2 暴力:也是暴力过了,无语.无向图,两端点都要加度数和点 3 */ 4 #include <cstdio> 5 #include <algorithm> ...

  5. hihocoder offer收割编程练习赛8 B 拆字游戏

    思路: 模拟,dfs. 注意题目中的trick,输出一块的时候不要把其他块也输出了. 实现: 1 #include <cstring> 2 #include <iostream> ...

  6. hihocoder #1163 : 博弈游戏·Nim游戏

    题意:有k堆石子,每次选择一堆,在这堆中取至少一个石子,第一个无石子可取的人为输. 思路:经典游戏,直接有结论:如果这些堆的石子数为:a1,a2,a3-an.那么a1到an的异或为0,则先手有必败策略 ...

  7. hihocoder #1179 : 永恒游戏 暴力

    #1179 : 永恒游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/11 ...

  8. PIPIOJ 1033: 拆字游戏 dfs连通分量

    题目: http://39.106.164.46/problem.php?id=1033 代码如下: #include<iostream> #include<algorithm> ...

  9. 1033: 拆字游戏

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

最新文章

  1. Shell脚本中的并发(2)
  2. 当机械课程设计遇上程序猿2017-12-19
  3. oracle函数 trunc(x[,y])
  4. CF585E-Present for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】
  5. python 最短路径算法_python Dijkstra算法实现最短路径问题的方法
  6. android app启动过程
  7. Ext.data.Store 获取Json数据只有一行,而且是最后一行
  8. 让C#语言充当自身脚本!——.NET中的动态编译
  9. SLAM之PTAM学习笔记
  10. Linux批量转图,CMYK转RGB
  11. 夜神模拟器和虚拟机(docker) 在windows上设置不兼容
  12. 有关bug走过的坑(复盘总结)
  13. oppo a36参数配置
  14. 在Vue中使用icon 字体图标
  15. 如何写好PRD(产品需求文档)+范例
  16. Unity学习笔记第二章:如何创建一个2D游戏
  17. 基于Java毕业设计学校旧书交易网站源码+系统+mysql+lw文档+部署软件
  18. Wordpress转移数据表后出现You do not have sufficient permissions to access this page的解决方法...
  19. G - 阿牛的EOF牛肉串
  20. gpd linux内核,linux内核驱动ZLG7290芯片

热门文章

  1. Tecnomatix | Process Designer (PD)的一点使用心得
  2. web页面播放语音提示保存成功
  3. 基于springboot来实现对日志文件内容的监控
  4. pr图形模板预设怎么使用_如何使用修改Premiere CC导入和编辑mogrt字体运动图形PR预设模板...
  5. 关于iPhone的Retina屏幕
  6. vertical-align 属性 - 垂直对齐方式。
  7. Linux系统里如何彻底的清空终端屏幕?
  8. 关于“工信部备案网址调整”的公告
  9. Python 变量名词解释以及作用
  10. 【前端开发】菜鸟必看,html chrome浏览器禁用谷歌翻译