题意;
找出一个 的矩阵,要求每一行严格存在 个 ,每一列严格存在 个 ,其余部分均为 。
就是要填充
或
个
,所以只要
成立,则一定存在答案。
看几组就能发现规律。
的矩阵中
则构造出了矩阵
的矩阵中
则构造出了矩阵
AC代码;
int n, m, a, b;
char c[100][100];
int main()
{
int t;
sd(t);
while (t--)
{
sdd(n, m);
sdd(a, b);
if (n * a != b * m)
{
puts("NO");
continue;
}
rep(i, 0, n - 1)
{
rep(j, 0, m - 1)
{
c[i][j] = '0';
}
}
int pos = 0;
rep(i, 0, n - 1)
{
rep(j, 0, a - 1)
{
c[i][pos] = '1';
pos++;
pos = pos % m;
}
}
puts("YES");
rep(i, 0, n - 1)
{
rep(j, 0, m - 1)
{
cout << c[i][j];
}
cout << endl;
}
}
return 0;
}