P1518求助
  • 板块灌水区
  • 楼主luogu0232
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/12/6 21:04
  • 上次更新2023/12/6 21:21:53
查看原帖
P1518求助
982662
luogu0232楼主2023/12/6 21:04
#include<bits/stdc++.h> 
using namespace std;
string a[10] = {};
int pos[100][2] = {},alp = 0;
struct cara{
	int x=0,y=0;
	int h = 1;//-U1 Y-1 -R2 X+1 -D3 Y+1 -L4 X-1
};
cara f,c;
int main(){
	int cnt = 0;
	for(int i = 0;i<10;i++){
		cin>>a[i];
	}
	for(int i = 0;i<10;i++){
		for(int j = 0;j<10;j++){
			if(a[i][j] == '*'){
				pos[alp][0] = j;//y
				pos[alp][1] = i;//x
				alp ++;
			}else if(a[i][j]=='C'){
				c.x = i;
				c.y = j;
			} else if(a[i][j]=='F'){
				f.x = i;
				f.y = j;
			} 
		}
	}
	while(cnt<500000){
		if(f.h==1){
			f.y--;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == f.x&&pos[i][1] == f.y||f.x>9||f.x<0||f.y>9||f.y<0){
					f.y++;
					f.h++;
				}
			}
		}else if(f.h==2){
			f.x++;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == f.x&&pos[i][1] == f.y||f.x>9||f.x<0||f.y>9||f.y<0){
					f.x--;
					f.h++;
				}
			}
		}else if(f.h==3){
			f.y++;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == f.x&&pos[i][1] == f.y||f.x>9||f.x<0||f.y>9||f.y<0){
					f.y--;
					f.h++;
				}
			}
		}else{
			f.x--;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == f.x&&pos[i][1] == f.y||f.x>9||f.x<0||f.y>9||f.y<0){
					f.x++;
					f.h-=3;
				}
			}
		}
		if(c.h==1){
			c.y--;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == c.x&&pos[i][1] == c.y||c.x>9||c.x<0||c.y>9||c.y<0){
					c.y++;
					c.h++;
				}
			}
		}else if(c.h==2){
			c.x++;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == c.x&&pos[i][1] == c.y||c.x>9||c.x<0||c.y>9||c.y<0){
					c.x--;
					c.h++;
				}
			}
		}else if(c.h==3){
			c.y++;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == c.x&&pos[i][1] == c.y||c.x>9||c.x<0||c.y>9||c.y<0){
					c.y--;
					c.h++;
				}
			}
		}else{
			c.x--;
			for(int i = 0;i<=alp;i++){
				if(pos[i][0] == c.x&&pos[i][1] == c.y||c.x>9||c.x<0||c.y>9||c.y<0){
					c.x++;
					c.h-=3;
				}
			}
		}
		cnt++;
		if(c.x==f.x&&c.y==f.y){
			cout<<cnt;
			return 0;
		}

	}
	cout<<0;
    return 0;
}

2023/12/6 21:04
加载中...