AGC 004 C. AND Grid - 構造
阿新 • • 發佈:2018-11-11
給你一個01網格圖,有一些格子為1。 構造兩個01網格圖B和C,使得二者的按位與是A,並且B中1是四連通的,C中1是四連通的。
。保證A邊界沒有1。A中至少有一個1。
題解:除了邊界,B填奇數行,C填偶數行;B填左邊界,C填右邊界即可……
#include<bits/stdc++.h>
#define gc getchar()
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define Rep(i,v) rep(i,0,(int)v.size()-1)
#define lint long long
#define db double
#define pb push_back
#define mp make_pair
#define fir first
#define sec second
#define debug(x) cerr<<#x<<"="<<x
#define sp <<" "
#define ln <<endl
using namespace std;
typedef pair<int,int> pii;
typedef set<int>::iterator sit;
inline int inn()
{
int x,ch;while((ch=gc)<'0'||ch>'9');
x=ch^'0';while((ch=gc)>='0'&&ch<='9')
x=(x<<1)+(x<<3)+(ch^'0' );return x;
}
const int N=510;char a[N][N],b[N][N],c[N][N];
int main()
{
int n=inn(),m=inn();rep(i,1,n) scanf("%s",a[i]+1);
rep(i,1,n) rep(j,1,m) b[i][j]=c[i][j]='.';
rep(i,1,n) rep(j,1,m) if((i%2==1||j==1||a[i][j]=='#')&&j!=m) b[i][j]='#';
rep(i,1,n) rep(j,1,m) if((i%2==0||j==m||a[i][j]=='#')&&j!=1) c[i][j]='#';
rep(i,1,n) { rep(j,1,m) printf("%c",b[i][j]);printf("\n"); }
printf("\n");
rep(i,1,n) { rep(j,1,m) printf("%c",c[i][j]);printf("\n"); }
return 0;
}