QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#105639 | #6309. Aqre | LYC_music# | WA | 3ms | 7520kb | C++14 | 2.3kb | 2023-05-14 16:50:18 | 2023-05-14 16:50:22 |
Judging History
answer
#include<bits/stdc++.h>
#define poly vector<int>
#define IOS ios::sync_with_stdio(false)
#define ll long long
#define mp make_pair
#define mt make_tuple
#define pa pair < int,int >
#define fi first
#define se second
#define inf 1e18
#define mod 998244353
#define int ll
#define N 1005
using namespace std;
int n,m;
int vis[N][N],a[N][N],A[N][N];
const int b[4][4]={
{1,1,1,0},
{1,0,1,1},
{1,1,0,1},
{0,1,1,1}};
const int dx[4]={0,0,1,-1};
const int dy[4]={1,-1,0,0};
bool chk()
{
int x=0;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++) vis[i][j]=0;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
if (a[i][j]&&!vis[i][j])
{
x++;
if (x>1)return 0;
queue<pa>q;
q.push(mp(i,j));
while (!q.empty())
{
int X=q.front().fi,Y=q.front().se;
vis[X][Y]=1;
q.pop();
for (int k=0;k<4;k++)
{
int nx=X+dx[k];
int ny=Y+dy[k];
if (nx>=0&&nx<n&&ny>=0&&ny<m&&a[nx][ny])
{
if (vis[nx][ny]) continue;
vis[nx][ny]=1;
q.push(mp(nx,ny));
}
}
}
}
return 1;
}
void BellaKira()
{
cin>>n>>m;
if (n<=3&&m<=3)
{
cout<<n*m<<'\n';
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++) cout<<1;
cout<<'\n';
}
return;
}
if (n<=2)
{
int ans=0;
for (int i=1;i<=n;i++)
{
for (int j=0;j<m;j++)
a[i][j]=((j%4)!=(4-i)),ans+=a[i][j];
}
cout<<ans<<'\n';
for (int i=1;i<=n;i++)
{
for (int j=0;j<m;j++)
cout<<a[i][j]<<"";
cout<<'\n';
}
return;
}
if (m<=2)
{
int ans=0;
for (int i=0;i<n;i++)
{
for (int j=1;j<=m;j++)
a[i][j]=((i%4)!=(4-j)),ans+=a[i][j];
}
cout<<ans<<'\n';
for (int i=0;i<n;i++)
{
for (int j=1;j<=m;j++)
cout<<a[i][j]<<"";
cout<<'\n';
}
return;
}
int ans=0;
for (int x=0;x<4;x++)
for (int y=0;y<4;y++)
{
int tot=0;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
a[i][j]=b[(x+i)%4][(y+j)%4],tot+=a[i][j];
// cout<<"?"<<tot<<'\n';
if (tot>ans&&chk())
{
ans=tot;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
A[i][j]=a[i][j];
}
}
cout<<ans<<'\n';
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++) cout<<A[i][j];
cout<<'\n';
}
}
signed main()
{
IOS;
cin.tie(0);
int T=1;
cin>>T;
while (T--)
{
BellaKira();
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 3ms
memory: 7520kb
input:
3 2 2 3 4 3 8
output:
4 11 11 9 1110 1011 1101 18 11101110 10111011 11011101
result:
ok ok (3 test cases)
Test #2:
score: -100
Wrong Answer
time: 2ms
memory: 7488kb
input:
361 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 2 16 2 17 2 18 2 19 2 20 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 20 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 4 16 4 17 4 18 4 19 4 20 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 1...
output:
4 11 11 6 111 111 6 1110 1101 8 11101 11011 10 111011 110111 11 1110111 1101110 12 11101110 11011101 14 111011101 110111011 16 1110111011 1101110111 17 11101110111 11011101110 18 111011101110 110111011101 20 1110111011101 1101110111011 22 11101110111011 11011101110111 23 111011101110111 110111011101...
result:
wrong answer 1s are not connected. (test case 3)