社区讨论

WA求调aaa

P10234[yLCPC2024] B. 找机厅参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mjfierik
此快照首次捕获于
2025/12/21 17:13
2 个月前
此快照最后确认于
2025/12/21 17:31
2 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
using A2 = array<int,2>;

const int N=2e3+5,Mod=998244353;
int kd[4][2]={{-1,0},{1,0},{0,1},{0,-1}};
int a[N][N],b[N][N],n,m,t; 
char c[N][N];
queue<A2> q;

signed main()
{
//	freopen(".in","r",stdin);
//	freopen(".out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	for(cin>>t;t--;)
	{
		cin>>n>>m;
		for(int i=m;i>=1;i--)
		{
			for(int j=m;j>=1;j--)
			{
				cin>>c[i][j];
			}
		}
		fill(a[1],a[n+1],-1);
		for(q.push({1,1}),a[1][1]=0;q.size();q.pop())
		{
			A2 e=q.front();
			for(int i=0;i<4;i++)
			{
				int nx=e[0]+kd[i][0],ny=e[1]+kd[i][1];
				if(nx>=1&&nx<=n&&ny>=1&&ny<=m&&c[nx][ny]!=c[e[0]][e[1]]&&a[nx][ny]==-1)
				{
					a[nx][ny]=a[e[0]][e[1]]+1;
					b[nx][ny]=i;
					q.push({nx,ny});
				}
			}
		}
		cout<<a[n][m]<<endl;
		if(a[n][m]!=-1)
		{
			for(int x=n,y=n,o;x!=1||y!=1;x-=kd[o][0],y-=kd[o][1])
			{
				cout<<"UDRL"[o=b[x][y]];
			}
			cout<<endl;
		}
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...