怎么才能输出拐角的信息
查看原帖
怎么才能输出拐角的信息
1270412
HGerdd楼主2024/3/5 21:04
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int flag = 0;
void chess(vector<vector<int>> &a,int x, int y,int m, int n,int size)
{
	if(size == 1) return;
	int t = flag++;
	int s = size/2;
	
	if(m < s+x && n < s+y)
	{
		chess(a,x,y,m,n,s);
	}else
	{
		a[s+x-1][s+y-1] = t;
		cout << s+x-1 << s+y-1 << t << endl;
		chess(a,x,y,s+x-1,s+y-1,s);
	}
	
	if(m < s+x && n >= s+y)
	{
		chess(a,x,y+s,m,n,s);
	}else
	{
		a[s+x-1][s+y] = t;
		cout << s+x-1 << s+y << t << endl;
		chess(a,x,y+s,s+x-1,s+y,s);
	}
	
	if(m >= s+x && n < s+y)
	{
		chess(a,x+s,y,m,n,s);
	}else
	{
		a[s+x][s+y-1] = t;
		cout << s+x << s+y-1 << t << endl;
		chess(a,x+s,y,s+x,s+y-1,s);
	}
	
	if(m >= s+x && n >= s+y)
	{
		chess(a,x+s,y+s,m,n,s);
	}else
	{
		a[s+x][s+y] = t;
		cout << s+x << s+y << t << endl;
		chess(a,x+s,y+s,s+x,s+y,s);
	}
	
	return;
}



int main()
{
	vector<vector<int>> a(2000,vector<int>(2000));
	int k,x,y;
	cin >> k;
	cin >> x >> y;
	int s = 1;
	for(int i = 1; i <= k; i++)
	{
		s *= 2;
	}
	chess(a,1,1,x,y,s);
    return 0;
}
2024/3/5 21:04
加载中...