【hihocoder 1474】拆字游戏
【题目链接】: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】拆字游戏相关推荐
- hiho #1474 : 拆字游戏(dfs)@
#1474 : 拆字游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Kui喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸&qu ...
- hiho #1474 拆字游戏(dfs,记录状态)
#1474 : 拆字游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Kui喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸&qu ...
- #1474 : 拆字游戏
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Kui喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸",小Kui的语文学的 ...
- 暴力/图论 hihoCoder 1179 永恒游戏
题目传送门 1 /* 2 暴力:也是暴力过了,无语.无向图,两端点都要加度数和点 3 */ 4 #include <cstdio> 5 #include <algorithm> ...
- hihocoder offer收割编程练习赛8 B 拆字游戏
思路: 模拟,dfs. 注意题目中的trick,输出一块的时候不要把其他块也输出了. 实现: 1 #include <cstring> 2 #include <iostream> ...
- hihocoder #1163 : 博弈游戏·Nim游戏
题意:有k堆石子,每次选择一堆,在这堆中取至少一个石子,第一个无石子可取的人为输. 思路:经典游戏,直接有结论:如果这些堆的石子数为:a1,a2,a3-an.那么a1到an的异或为0,则先手有必败策略 ...
- hihocoder #1179 : 永恒游戏 暴力
#1179 : 永恒游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/problemset/problem/11 ...
- PIPIOJ 1033: 拆字游戏 dfs连通分量
题目: http://39.106.164.46/problem.php?id=1033 代码如下: #include<iostream> #include<algorithm> ...
- 1033: 拆字游戏
题目描述 PiPi喜欢把别人的名字拆开来,比如"螺"就可以拆成"虫田糸",PiPi的语文学的不是很好,于是她决定使用编程的方式来解决这个问题. 给出一个01矩阵 ...
最新文章
- Shell脚本中的并发(2)
- 当机械课程设计遇上程序猿2017-12-19
- oracle函数 trunc(x[,y])
- CF585E-Present for Vitalik the Philatelist【莫比乌斯反演,狄利克雷前缀和】
- python 最短路径算法_python Dijkstra算法实现最短路径问题的方法
- android app启动过程
- Ext.data.Store 获取Json数据只有一行,而且是最后一行
- 让C#语言充当自身脚本!——.NET中的动态编译
- SLAM之PTAM学习笔记
- Linux批量转图,CMYK转RGB
- 夜神模拟器和虚拟机(docker) 在windows上设置不兼容
- 有关bug走过的坑(复盘总结)
- oppo a36参数配置
- 在Vue中使用icon 字体图标
- 如何写好PRD(产品需求文档)+范例
- Unity学习笔记第二章:如何创建一个2D游戏
- 基于Java毕业设计学校旧书交易网站源码+系统+mysql+lw文档+部署软件
- Wordpress转移数据表后出现You do not have sufficient permissions to access this page的解决方法...
- G - 阿牛的EOF牛肉串
- gpd linux内核,linux内核驱动ZLG7290芯片
热门文章
- Tecnomatix | Process Designer (PD)的一点使用心得
- web页面播放语音提示保存成功
- 基于springboot来实现对日志文件内容的监控
- pr图形模板预设怎么使用_如何使用修改Premiere CC导入和编辑mogrt字体运动图形PR预设模板...
- 关于iPhone的Retina屏幕
- vertical-align 属性 - 垂直对齐方式。
- Linux系统里如何彻底的清空终端屏幕?
- 关于“工信部备案网址调整”的公告
- Python 变量名词解释以及作用
- 【前端开发】菜鸟必看,html chrome浏览器禁用谷歌翻译