【agc004C】AND Grid
Description
给你一个\(n*m\)的网格图\(A\),有一些格子是'#',现在要构造出两个新的网格图\(B\)和\(C\)满足:
1、如果\(A[i][j]=\)'#',则\(B[i][j]=C[i][j]=\)'#'
2、如果\(A[i][j]\neq\)'#',则\(B[i][j]=\)'#'或\(C[i][j]=\)'#'
3、\(B\)和\(C\)中的所有的'#'都只构成\(1\)个连通块
数据范围:保证\(A\)的边界没有'#',\(3<=n,m<=500\)
Solution
构造题什么的。。==
在钦定了必定为'#'的格子(也就是\(A[i][j]\)为'#'的那些\((i,j)\))之后,我们剩下要做的就是。。用两种没有交的方案把这些'#'连起来
注意到题目中有一个很奇怪的条件:\(A[i][j]\)的边界上面保证没有'#',所以要好好利用一下
具体的话就是。。考虑根据奇偶性分类,在\(B\)图中将第二维为奇数的位置全部钦定成'#',然后钦定最上面那行为'#';在\(C\)图中将第二维为偶数的位置全部钦定为'#',然后钦定最下面那行为'#'即可
然后这样一定是对的:首先肯定不会有交集,接着就是连通性,因为是根据第二维的奇偶性钦定的字符,所以\(B\)中的奇数位(和\(C\)中的偶数位)肯定都会变成。。若干条“柱子”,然后原来处在奇数位(偶数位)的'#'肯定是连通的,原来处在偶数位(奇数位)的'#'因为相邻位肯定是'#'所以也是连通的
mark:(严格来说也不算什么特别有建设性的mark吧==)一个。。比较模糊的方向。。?两个没有交的集合的找法其实不一定要。。找出一个之后钦定不能要再找另一个,而是可以从一开始就确定两类不会产生交集的大类,然后分别在里面找
代码大概长这个样子
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=510;
char A[N][N],B[N][N],C[N][N];
int n,m;
int main(){
#ifndef ONLINE_JUDGE
freopen("a.in","r",stdin);
#endif
scanf("%d%d\n",&n,&m);
for (int i=1;i<=n;++i){
for (int j=1;j<=m;++j)
scanf("%c",&A[i][j]),B[i][j]=A[i][j],C[i][j]=A[i][j];
scanf("\n");
}
for (int i=1;i<=m;++i) B[1][i]='#',C[n][i]='#';
for (int i=2;i<n;++i)
for (int j=2;j<m;++j)
if (j&1) B[i][j]='#';
else C[i][j]='#';
for (int i=1;i<=n;++i){
for (int j=1;j<=m;++j)
printf("%c",B[i][j]);
printf("\n");
}
printf("\n");
for (int i=1;i<=n;++i){
for (int j=1;j<=m;++j)
printf("%c",C[i][j]);
printf("\n");
}
}
【agc004C】AND Grid的更多相关文章
- 【CSS】343- CSS Grid 网格布局入门
CSS Grid(网格) 布局使我们能够比以往任何时候都可以更灵活构建和控制自定义网格.Grid(网格) 布局使我们能够将网页分成具有简单属性的行和列. 它还能使我们在不改变任何HTML的情况下,使用 ...
- 【ExtJs】获取grid选中的records
var records = me.grid.getSelectionModel().getSelection(); //获取所有选中的行 var record =records[0]; //获取选中行 ...
- 【leetcode】1001. Grid Illumination
题目如下: On a N x N grid of cells, each cell (x, y) with 0 <= x < N and 0 <= y < N has a la ...
- 【LeetCode】1001. Grid Illumination 解题报告(C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 哈希 日期 题目地址:https://leetcod ...
- 【POJ2185】【KMP + HASH】Milking Grid
Description Every morning when they are milked, the Farmer John's cows form a rectangular grid that ...
- 【CodeChef】Querying on a Grid(分治,最短路)
[CodeChef]Querying on a Grid(分治,最短路) 题面 Vjudge CodeChef 题解 考虑分治处理这个问题,每次取一个\(mid\),对于\(mid\)上的三个点构建最 ...
- 【AtCoder】ARC095 E - Symmetric Grid 模拟
[题目]E - Symmetric Grid [题意]给定n*m的小写字母矩阵,求是否能通过若干行互换和列互换使得矩阵中心对称.n,m<=12. [算法]模拟 [题解]首先行列操作独立,如果已确 ...
- 【题解】AT2043 AND Grid
[题解]AT2043 AND Grid 我们考虑直接构造两个互补的图切分别联通的图,然后原图有的大家都有就构造完成了. #include<iostream> #include<cst ...
- 【RAC】 RAC For W2K8R2 安装--grid的安装(四)
[RAC] RAC For W2K8R2 安装--grid的安装(四) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学 ...
随机推荐
- 如何运用 Powershell 修改Office365和AD账户
这段时间需要大量地修改AD用户的一些属性,例如邮件,UPN,登录名等等,以便和Office365的登录账号保持一致.写了个简单脚本进行批量修改. #Import AD ModuleImport-Mod ...
- Django——POST请求及Action触发事件
添加网页login,将类型置为post,并添加action page,也就是之前写好的页面 添加page网页的views函数,要求获取post指令,如果username及password均正确则跳转到 ...
- angular之$broadcast、$emit、$on传值
文件层级 index.html <!DOCTYPE html> <html ng-app="nickApp"> <head> <meta ...
- CSP201312-3:最大的矩形
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...
- Hyperledger Fabric CouchDB as the State Database——使用CouchDB
使用CouchDB作为状态数据库 状态数据库选项 状态数据库包括LevelDB和CouchDB.LevelDB是嵌入在peer进程中的默认键/值状态数据库,CouchDB是一个可选的外部状态数据库.与 ...
- Python3基础-表达式和运算符
表达式和运算符 什么是表达式? 1+2*3就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数. 1+2*3经过计算后得到的结果是7,我们可以将计算结果存放在一个变量里,result=1+ ...
- Python:集合操作总结
集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...
- 线段树---成段更新hdu1698 Just a Hook
hdu1698 Just a Hook 题意:O(-1) 思路:O(-1) 线段树功能:update:成段替换 (由于只query一次总区间,所以可以直接输出1结点的信息) 题意:给一组棍子染色,不同 ...
- 主从复制redis
编辑主服务器的配置文件 注释下面一项 # slaveof 192.168.10.1 6379 主从复制 一主可以有多从,支持链式连级 一主多从 1:修改从服务器的配置文件/etc/redis.co ...
- MySQL 忘记root密码怎么办
前言:记住如果忘记root密码,在启动MySQL的时候,跳过查询授权表就ok了. 对于RedHat 6 而言 (1)启动mysqld 进程时,为其使用:--skip-grant-tables --sk ...