矩阵变幻
题目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);
你就可以获得
的新成就