[agc004c]and grid

Posted dcdcbigbig

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[agc004c]and grid相关的知识,希望对你有一定的参考价值。

别问我为什么咕了两天

题意:

给出一个$H imes W$的网格图A,仅由‘.‘和‘#‘构成,边界上没有‘#‘且至少有一个‘#‘。构造两个网格图B和C,大小均为$H imes W$,要求A中为‘#‘的位置B、C中也为‘#‘,A中为‘.‘的位置B、C中不能都为‘#‘,且B、C中由‘#‘构成的联通块有且只有一个。

$3leq H,Wleq 500$

本题有SPJ

题解:

这种题貌似跟数据范围没什么关系。。。

敢写敢过?

B中第一列和奇列填‘#‘,C中偶列和最后一列填‘#‘,必定满足条件

别问我怎么证的,orzwzd

代码:

 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<cmath>
 6 #include<queue>
 7 #define inf 2147483647
 8 #define eps 1e-9
 9 using namespace std;
10 typedef long long ll;
11 int n,m;
12 char a[501][501],b[501][501],c[501][501];
13 int main(){
14     scanf("%d%d",&n,&m);
15     for(int i=1;i<=n;i++)scanf("%s",a[i]+1);
16     for(int i=1;i<=n;i++){
17         for(int j=1;j<=m;j++){
18             if(a[i][j]==#)b[i][j]=c[i][j]=#;
19             else b[i][j]=c[i][j]=.;
20         }
21     }
22     for(int i=1;i<=m;i++)b[1][i]=c[n][i]=#;
23     for(int i=1;i<=m;i++){
24         for(int j=2;j<n;j++){
25             if(i&1)b[j][i]=#;
26             else c[j][i]=#;
27         }
28     }
29     for(int i=1;i<=n;i++)printf("%s
",b[i]+1);
30     printf("
");
31     for(int i=1;i<=n;i++)printf("%s
",c[i]+1);
32     return 0;
33 }

以上是关于[agc004c]and grid的主要内容,如果未能解决你的问题,请参考以下文章

[Grid Layout] Use auto-fill and auto-fit if the number of repeated grid tracks is not to be def(代码片段

agc004cAND Grid

[ AGC007 E ] Shik and Travel

[ AGC007 D ] Shik and Game

AtCoder Grand Contest 031 (AGC031) F - Permutation and Minimum 动态规划

agc045_d Lamps and Buttons