题解:P14592 [LNCPC 2025] 裂痕

· · 题解

一个位置 (i,j) 由它这行的数 a_i 和它这列的数 b_j 决定。它既要小于 a_i,又要小于 b_j,所以对于每个位置 (i,j),输出 \min(a_i,b_j)-1

:::info[参考代码]

//Author: mairuisheng
//#pragma GCC optimize(3)
#include<cstdio>
using namespace std;
inline int read()
{
    int x=0,f=1;
    char s;
    s=getchar();
    while(s<48||s>57)
    {
        if(s=='-')f=-f;
        s=getchar();
    }
    while(s>47&&s<58)
    {
        x=(x<<3)+(x<<1)+s-48;
        s=getchar();
    }
    return x*f;
}
constexpr int N=2e3+1;
int n;
int a[N],b[N];
void Solve()
{
    n=read();
    int i,j;
    for(i=1;i<=n;++i)a[i]=read();
    for(i=1;i<=n;++i)b[i]=read();
    for(i=1;i<=n;++i)
    {
        for(j=1;j<=n;++j)
        {
            if(a[i]>b[j])printf("%d ",b[j]-1);
            else printf("%d ",a[i]-1);
        }
        puts("");
    }
}
int main()
{
    int T;
    T=read();
    while(T--)Solve();
    return 0;
}