这有什么错啊?(E
  • 板块灌水区
  • 楼主wxzzzz
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/1 01:36
  • 上次更新2024/12/1 10:30:10
查看原帖
这有什么错啊?(E
749630
wxzzzz楼主2024/12/1 01:36

本地手造了 18 组都没查出错

#include <bits/stdc++.h>
#define ll long long
#define ull unsigned ll
#define rll register ll
#define cll const ll
#define fs first
#define sc second
#define N 100005
using namespace std;
inline ll read()
{
    rll x=0;bool f=1;register char c=getchar();
    while(c<48||c>57){if(c=='-') f=0;c=getchar();}
    while(c>=48&&c<=57){x=x*10+(c^48);c=getchar();}
    return f?x:-x;
}
inline void write(ll x)
{
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+48);
}
ll n,m,a[N];
inline void solve()
{
	n=read(),m=read();
	if(n==1&&m==1)
	{
		puts("YES\n1");
		return;
	}
	if(m==1)
	{
		puts("NO");
		return;
	}
	if(m&1^1)
	{
		puts("YES");
		for(rll i=1;i<=m;i++)
		{
			for(rll j=1;j<=n;j++)
				write((i&1)?j:n-j+1),putchar(' ');
			putchar('\n');
		}
		return;
	}
	if(n&1^1)
	{
		puts("NO");
		return;
	}
	puts("YES");
	for(rll i=1;i<=n;i++)
		write(i),putchar(' ');
	putchar('\n');
	rll idx=0;
	for(rll i=(n+1)/2;i<=n;i++)
		write(a[++idx]=i),putchar(' ');
	for(rll i=1;i<=n/2;i++)
		write(a[++idx]=i),putchar(' ');
	putchar('\n');
	for(rll i=1;i<=n;i++)
		write((n+1)*3/2-i-a[i]),putchar(' ');
	putchar('\n');
	for(rll i=1;i<=m-3;i++)
	{
		for(rll j=1;j<=n;j++)
			write((i&1)?j:n-j+1),putchar(' ');
		putchar('\n');
	}
}
int main()
{
	rll T=read();
	while(T--) solve();
    return 0;
}
2024/12/1 01:36
加载中...