90分求助!!
查看原帖
90分求助!!
1211305
xupeijing_is_king楼主2025/7/3 19:54

最后一个点WA

#include<bits/stdc++.h>
using namespace std;
struct Node{
	int x,y;
}a[1005][105];
int f[1005][105],n,m,zdx,zdy,t,ans=1e9;
int dfs(int x,int y){
	int cnt=0,nx=x,ny=y;
	while(!f[nx][ny]){
//		cout<<nx<<" "<<ny<<endl;
		cnt+=abs(nx-a[nx][ny].x)*t;
		f[nx][ny]=1;//标记 
//		cout<<a[nx][ny].x<<" "<<a[nx][ny].y<<endl;
		if(nx==a[nx][ny].x&&ny==a[nx][ny].y) return cnt;
		int tx=nx,ty=ny;//很重要!!! 
		nx=a[tx][ty].x,ny=a[tx][ty].y;//更新 
	}
	return 1e9;
}
int main(){
	cin>>n>>m>>t>>zdx>>zdy;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			int xx,yy;
			cin>>xx>>yy;
			a[i][j].x=xx,a[i][j].y=yy;
		}
//	for(int i=1;i<=n;i++){
//		for(int j=1;j<=m;j++) cout<<a[i][j].x<<" "<<a[i][j].y<<"\t";
//		cout<<endl;
//	}
	for(int i=1;i<=m;i++){
		memset(f,0,sizeof f);
		int cnt=dfs(1,i);
		ans=min(ans,cnt);
	}
	if(ans==1e9) cout<<"impossible"<<endl;
	else cout<<ans;
	return 0;
}
2025/7/3 19:54
加载中...