社区讨论

0分求调

P1228地毯填补问题参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mkrr8r9x
此快照首次捕获于
2026/01/24 11:33
4 周前
此快照最后确认于
2026/01/24 18:40
4 周前
查看原帖
CPP
#include<iostream>
using namespace std;
long long kr,x,y;
void fenz(long long wx,long long wy,long long a,long long b,long long k);
int main(){
	cin >> kr >> x >> y;
	fenz(1,1,x,y,kr);cin >> x;
    return 0;
}
void fenz(long long wx,long long wy,long long a,long long b,long long k){
	if(k==0) return;
	long long lsa = 2<<(k-2);
	if(k == 1) lsa = 1;
	long long midx=wx+lsa;long long midy=wy+lsa;
	if(a<midx&&b<midy) {
		printf("%d %d %d\n",midx,midy,1);
		fenz(wx,wy,a,b,k-1);
		fenz(wx,midy,midx-1,midy,k-1);
		fenz(midx,wy,midx,midy-1,k-1);
		fenz(midx,midy,midx,midy,k-1);
	}
	else if(a < midx&&midy>b) {
		printf("%d %d %d\n",midx,midy-1,2);
		fenz(wx,wy,midx-1,midy-1,k-1);
		fenz(wx,midy,a,b,k-1);
		fenz(midx,wy,midx,midy-1,k-1);
		fenz(midx,midy,midx,midy,k-1);
	}
	else if(midx<=a&&midy>b) {
		printf("%d %d %d\n",midx-1,midy,3);
		fenz(wx,wy,midx-1,midy-1,k-1);
		fenz(wx,midy,midx-1,midy,k-1);
		fenz(midx,wy,a,b,k-1);
		fenz(midx,midy,midx,midy,k-1);
	}
	else if(midx <= a&midy<=b){
		printf("%d %d %d\n",midx-1,midy-1,4);
		fenz(wx,wy,midx-1,midy-1,k-1);
		fenz(wx,midy,midx-1,midy,k-1);
		fenz(midx,wy,midx,midy-1,k-1);
		fenz(midx,midy,a,b,k-1);
	}
}
0分求调,会关注!

回复

1 条回复,欢迎继续交流。

正在加载回复...