class Solution {
//题目说得大矩阵是2*n的,小矩阵是2*1;然后多少种改变,可以发现其改变拆分成很多个的两个小矩阵的改变(倒一下),改变方式相同,只是位置不同,所以可以分改变的个数不同情况讨论,同时往下加个数,递归计算;
public:
int res=1;
int rectCover(int number) {
if(number == 0) return 0;
dp(number, 1);
return res;
}
void dp(int number, int start){
if(number-start+1<2){
return;
}
res += number - start;
for(int i = start; i<=number-1; ++i){
dp(number, i+2);
}
}
};

京公网安备 11010502036488号