社区讨论

40WA求条

P11228[CSP-J 2024] 地图探险参与者 3已保存回复 5

讨论操作

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

当前回复
5 条
当前快照
1 份
快照标识符
@m334bli0
此快照首次捕获于
2024/11/04 22:30
去年
此快照最后确认于
2025/11/04 15:19
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
bool dt[105][105];//地图
bool vis[105][105];//是否被访问 
int t;
int yd1[5]={0,1,0,-1};
int yd2[5]={1,0,-1,0};
int d,xx,yy;//朝向及方位 
char furina;//点阵状态
int fufufu; 
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	freopen("explore.in","r",stdin);
	freopen("explore.out","w",stdout);
	cin>>t;
	for(int fufu=1;fufu<=t;fufu++)
	{
		cin>>n>>m>>k;
		cin>>xx>>yy>>d;
		int ans=1;
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)
			{
				vis[i][j]=0;
				cin>>furina;
				if(furina=='x')fufufu=1;//不可通过
				if(furina=='.')fufufu=0; 
				dt[i][j]=fufufu;
			}
		}
		
		
		for(int i=1;i<=k;i++)
		{
			int x_nextt=xx+yd1[d];
			int y_nextt=yy+yd2[d];
			if(x_nextt<=n && x_nextt>=1 && 1<=y_nextt && y_nextt<=m && dt[x_nextt][y_nextt]==0)
			{
				xx=x_nextt;
				yy=y_nextt;
				if(vis[xx][yy]==0)
				{
					ans++;
					vis[xx][yy]=1;
			
				}
			}
			else
			{
				d=(d+1)%4;
			}
		}
		
		
		cout<<ans<<"\n";
	}
	return 0;
}

回复

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

正在加载回复...