矩阵变幻 题目ID:9437

矩阵变幻

题目ID:9437
此题也是灰常简单与战俘赦免大同小异
接下来先讲

战俘赦免 题目ID:9330

首先我们知道他的长宽是pow(2,n)
我们可以先将他全部初始化为0
数组用来存储最大范围是1024*1024我们可以定义为a[1500][1500]1
核心代码

void f(int n,int x,int y){
	if(n==0){
		a[x][y]=1;
		return ;
	}
	int k=pow(2,n-1);
	f(n-1,x+k,y);
	f(n-1,x,y+k);
	f(n-1,x+k,y+k);
}

接下来讲矩阵变幻
我们只需要在上面的基础上加上一些小小的改动

就像这样

void f(int n,int x,int y,int a1,int a2){
	if(n==0){
		a[x][y]=a1;
		return ;
	}
	int k=pow(2,n-1);
	f(n-1,x,y,a1,a2);
	f(n-1,x+k,y,a1,a2);
	f(n-1,x,y+k,a1,a2);
	f(n-1,x+k,y+k,a2,a1);
}

在输入的时候变为

f(n,1,1,1,2);

你就可以获得


的新成就

2 个赞