G. A/B Matrix

原题链接

题解

每行有 a 个,所以总共有 na

每列有 b 个,所以总共有 mb

所以要满足 na=mb

想象一下这个场景:每一行,每次往当前列中,最左端的一最少的列的开始连续放置1

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;

void solve()
{
    int n,m,a,b;
    cin>>n>>m>>a>>b;

    if(n*a!=m*b)
    {
        cout<<"no\n";
        return;
    }
    cout<<"yes\n";
    int start=1;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(j>=start&&j<=start+a-1||j<start&&start+a-1>=j+m) cout<<1;
            else cout<<0;
        }
        start=(start+a-1)%m+1;
        cout<<'\n';
    }

}
int main()
{
    //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}


posted @   纯粹的  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示