求助
查看原帖
求助
490484
include13_fAKe楼主2024/5/16 19:58
#include<bits/stdc++.h>
using namespace std;

int N,P;
int x[2*114514];
int y[2*114514];
int ptr=0;
int map1[2024][2024];
void modify(int now){
	int x_=x[now];
	int y_=y[now];
	int x2=x[now+1];
	int y2=y[now+1];
	if(x_==x2){
		if(y_<y2){
			for(int i=y_;i<y2;i++){
				++ptr;
				map1[x_][i]=ptr;
			}
		}
		else{
			for(int i=y_;i>y2;i--){
				++ptr;
				map1[x_][i]=ptr;
			}
		}
	}
	else{
		if(x_<x2){
			for(int i=x_;i<x2;i++){
				++ptr;
				map1[i][y_]=ptr;
			}
		}
		else{
			for(int i=x_;i>x2;i--){
				++ptr;
				map1[i][y_]=ptr;
			}
		} 
	}
	return;
}
int main(){
	cin>>N>>P;
	for(int i=1;i<=P;i++){
		cin>>x[i]>>y[i];
	}
	x[N+1]=x[1];
	y[N+1]=y[1];
	for(int i=1;i<=P;i++){
		modify(i);
	}
	for(int i=0;i<=12;i++){
		for(int j=0;j<=12;j++){
			cout<<map1[i][j]<<' ';
		}
		cout<<endl;
	}
	while(N--){
		int x_,y_,x2,y2;
		cin>>x_>>y_>>x2>>y2;
		int a=map1[x_][y_];
		int b=map1[x2][y2];
		if(a>b)	swap(a,b);
		cout<<min(abs(b-a),abs(a+ptr-b))<<endl;
	}
	return 0;
}
2024/5/16 19:58
加载中...