NYOJ 45 棋盘覆盖
Posted lxjshuju
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NYOJ 45 棋盘覆盖相关的知识,希望对你有一定的参考价值。
以为是分治法那个经典的样例。一看题才知道是大数
-
描写叙述
-
在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖。如图1(k=2时),现用一缺角的2×2方格(图2为当中缺右下角的一个)。去覆盖2k×2k未被覆盖过的方格。求须要类似图2方格总的个数s。
如k=1时,s=1;k=2时。s=5
-
输入
-
第一行m表示有m组測试数据;
每一组測试数据的第一行有一个整数数k; -
输出
-
输出所需个数s;
-
例子输入
-
3 1 2 3
-
例子输出
-
1 5 21
#include <iostream> #include <cstring> using namespace std; int main() { int n,m,i,j,k,t,ans[101][61]; memset(ans,0,sizeof(ans)); ans[1][0]=4; for(i=2;i<101;i++) { k=0; for(j=0;j<61;j++) { t=ans[i-1][j]*4+k; ans[i][j]=t%10; k=t/10; } } for(i=1;i<101;i++) { j=60; while(0==ans[i][j]) j--; k=0; for(;j>=0;j--) { t=ans[i][j]+k*10; ans[i][j]=t/3; k=t%3; } } cin>>n; while(n--) { cin>>m; j=60; while(0==ans[m][j]) j--; while(j>=0) cout<<ans[m][j--]; cout<<endl; } return 0; }
以上是关于NYOJ 45 棋盘覆盖的主要内容,如果未能解决你的问题,请参考以下文章