求修改
查看原帖
求修改
1269144
depth_first_search_楼主2024/7/19 09:31
#include<bits/stdc++.h>
using namespace std;
int vx[5]={0,1,1,0,0};
int vy[5]={0,1,0,1,0};
void print(int k,int dx,int dy,int t){
	int v=1<<(k-1);
	cout<<dx+v+vx[t]<<' '<<dy+v+vy[t]<<endl;
}
void sovel(int k,int dx,int dy,int x,int y){
	int v=1<<(k-1),t;
	if(x<=v)t=(y<=v)?1:2;
	else t=(y<=v)?1:2;
	print(k,dx,dy,t);
	if(k==1)return;
	if(t==1){
		sovel(k-1,dx,dy,x,y);
		sovel(k-1,dx,dy+v,v,1);
		sovel(k-1,dx+v,dy,1,y);
		sovel(k-1,dx+v,dy+v,1,1);
	}else if(t==2){
		sovel(k-1,dx,dy,v,v);
		sovel(k-1,dx+v,dy,x,y-v);
		sovel(k-1,dx,dy+v,1,y);
		sovel(k-1,dx+v,dy+v,1,1);
	}else if(t==3){
		sovel(k-1,dx,dy,v,v);
		sovel(k-1,dx+v,dy,v,1);
		sovel(k-1,dx,dy+v,x-v,y);
		sovel(k-1,dx+v,dy+v,1,1);
	}else if(t==4){
		sovel(k-1,dx,dy,v,v);
		sovel(k-1,dx,dy+v,v,1);
		sovel(k-1,dx+v,dy,1,y);
		sovel(k-1,dx+v,dy+v,x-v,y-v);
	}
} 
int main(){
	int k,x,y;
	cin>>k>>x>>y;
	sovel(k,0,0,x,y);
	return 0;
}

2024/7/19 09:31
加载中...