调对闭关
查看原帖
调对闭关
1435010
zhouxiaodong楼主2025/6/25 20:41
//https://www.luogu.com.cn/problem/B4208
//B4208 [常州市赛 2021] 移动
#include<bits/stdc++.h>
using namespace std;
const int dx1[2]={-1,0};
const int dy1[2]={0,-1};
const int dx2[2]={1,0};
const int dy2[2]={0,1};
struct node
{
	int x;
	int y;
	int s;
	int id;
	int ex;
	int ey;
};
int n,m,k,t;
char a[100010][100010][50010];
int ans[50010];
bool vis[100010][100010][50010];
queue<node>q;
void bfs(int ans[])
{
	while(!q.empty())
	{
		node l=q.front();
		q.pop();
		if(l.x==l.ex&&l.y==l.ey)
		{
			int res=l.id;
			ans[res]=l.s;
		}
		for(int i=0;i<2;i++)
		{
			int xx=l.x+dx1[i];
			int yy=l.y+dy1[i];
			int ss=l.s+1;
			int iid=l.id;
			int eex=l.ex;
			int eey=l.ey;
			if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&!vis[xx][yy][iid]&&a[xx][yy][iid])
			{
				vis[xx][yy][iid]=true;
				q.push({xx,yy,ss,iid,eex,eey});
			}
		}
		for(int i=0;i<2;i++)
		{
			int xx=l.x+dx2[i];
			int yy=l.y+dy2[i];
			int ss=l.s+1;
			int iid=l.id;
			int eex=l.ex;
			int eey=l.ey;
			if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&!vis[xx][yy][iid])
			{
				vis[xx][yy][iid]=true;
				q.push({xx,yy,ss,iid,eex,eey});
			}
		}
	}
}
int main()
{
	cin>>n>>m>>k;
	for(int i=1;i<=k;i++)
	{
		int x,s,e;
		cin>>x>>s>>e;
		for(int j=s;j<=e;j++)
		{
			a[x][j][i]=1;
		}
	}
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		int sx,sy,ex,ey;
		cin>>sx>>sy>>ex>>ey;
		q.push({sx,sy,0,i,ex,ey});
		vis[sx][sy][i]=true;
		ans[i]=-1;
	}
	bfs(ans);
	for(int i=1;i<=t;i++)
	{
		cout<<ans[i]<<"\n";
	}
	return 0;
}

编译器报错...:

[编译错误] [
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s: Assembler messages: 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:271: Error: value of 00038ddbc9a02632 too large for field of 4 bytes at 0000000000000012 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:276: Error: value of 00038ddbc9a02649 too large for field of 4 bytes at 0000000000000029 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:285: Error: value of 00038ddbc9a02678 too large for field of 4 bytes at 0000000000000058 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:355: Error: value of 0001c6ede4d19b64 too large for field of 4 bytes at 0000000000000184 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:388: Error: value of 0001c6ede4d19be7 too large for field of 4 bytes at 0000000000000207 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:405: Error: value of 00038ddbc9a0285f too large for field of 4 bytes at 000000000000023f 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:461: Error: value of 0001c6ede4d19d0f too large for field of 4 bytes at 000000000000032f 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:478: Error: value of 0001c6ede4d19d50 too large for field of 4 bytes at 0000000000000370 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:495: Error: value of 00038ddbc9a029c8 too large for field of 4 bytes at 00000000000003a8 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:613: Error: value of 00038ddbc9a02b58 too large for field of 4 bytes at 0000000000000538 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:626: Error: value of 0001c6ede4d19f51 too large for field of 4 bytes at 0000000000000571 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:632: Error: value of 0001c6ede4ce91eb too large for field of 4 bytes at 000000000000058b 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:637: Error: value of 0001c6ede4ce9202 too large for field of 4 bytes at 00000000000005a2 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:647: Error: value of 0001c6ede4ce922d too large for field of 4 bytes at 00000000000005cd 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:3587: Error: value of 00038ddbc9a02c7d too large for field of 4 bytes at 000000000000060d 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:3630: Error: value of 00038ddbc9a02c48 too large for field of 4 bytes at 0000000000000628 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:3654: Error: value of 00038ddbc9a02cc8 too large for field of 4 bytes at 0000000000000658 
C:\Users\Administrator\AppData\Local\Temp\ccCNLG9X.s:3658: Error: value of 00038ddbc9a02c90 too large for field of 4 bytes at 0000000000000670 
]

洛谷 IDE 报错:

Received signal 11: Segmentation fault with invalid memory reference.
2025/6/25 20:41
加载中...