[玄2关] 暴搜 WA70Pts #2#3#10 求调
  • 板块P1189 SEARCH
  • 楼主Sincerin
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/10 08:56
  • 上次更新2024/11/10 11:15:23
查看原帖
[玄2关] 暴搜 WA70Pts #2#3#10 求调
749325
Sincerin楼主2024/11/10 08:56
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define int long long
#define ri register int
#define rd(n) n=read()
inline int read(void)
{
	register int res=0,f=0;
	register char c=getchar();
	while(c<'0'||c>'9'){f^=(c=='-');c=getchar();}
	while(c>='0'&&c<='9'){res=(res<<3)+(res<<1)+(c^48);c=getchar();}
	return f?-res:res;
}
inline void fprint(int n)
{
	if(n<0){putchar('-');n=-n;}
	if(n>9) fprint(n/10);
	putchar(n%10+'0');
}
inline void print(int n)
{
	fprint(n);
	putchar('\n');
}
const int N=1000002;
int n,m,k,x,y,z,res,ret,l,r,ans,tot,cnt;
char s[60][60];
int sx,sy;
char op[15];
int a[10006];
bool vis[52][52][1002];
inline bool check(int x,int y)
{
	if(x<1||x>n||y<1||y>m||s[x][y]=='X') return 0;
	return 1;
}
void dfs(int dep,int x,int y)
{
	if(vis[x][y][dep]) return;
	if(check(x,y)==0) return;
	if(dep==k+1) 
	{
		s[x][y]='*';
		return;
	}
	vis[x][y][dep]=1;
	if(a[dep]==1)
	{
		for(ri i=x-1;i;--i)
		{
			if(check(i,y)==0) break; 
			dfs(dep+1,i,y);
		}
		return;
	}
	if(a[dep]==2)
	{
		for(ri i=y+1;i<=m;++i)
		{
			if(check(x,i)==0) break; 
			dfs(dep+1,x,i);
		}
		return;
	}
	if(a[dep]==3)
	{
		for(ri i=x+1;i<=n;++i)
		{
			if(check(i,y)==0) break; 
			dfs(dep+1,i,y);
		}
		return;
	}
	if(a[dep]==4)
	{
		for(ri i=y-1;i;--i)
		{
			if(check(x,i)==0) break; 
			dfs(dep+1,x,i);
		}
		return;
	}
}
signed main(void)
{
	rd(n); rd(m);
	for(ri i=1;i<=n;++i)
	{
		scanf("%s",s[i]+1);
		for(ri j=1;j<=m;++j)
		{
			if(s[i][j]=='*')
			{
				sx=i;
				sy=j;
			}
		}
	}
	rd(k);
	for(ri i=1;i<=k;++i)
	{
		scanf("%s",op);
		if(op[0]=='N') a[i]=1;
		if(op[0]=='E') a[i]=2;
		if(op[0]=='S') a[i]=3;
		if(op[0]=='W') a[i]=4;
	} 
	dfs(1,sx,sy);
	s[sx][sy]='.';
	for(ri i=1;i<=n;++i)
	{ 
		for(ri j=1;j<=m;++j)
			putchar(s[i][j]);
		puts("");
	}
	return 0;
}










2024/11/10 08:56
加载中...