NYOJ 45 棋盘覆盖(规律+大数+打表)
发布时间:2020-12-14 02:26:46 所属栏目:大数据 来源:网络整理
导读:棋盘覆盖 时间限制: 3000 ms ?|? 内存限制: 65535 KB 难度:3 描述 在一个2 k ×2 k (1=k=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2 k ×2 k 未被覆盖过的方格,求需要类似图2方格总的
棋盘覆盖
时间限制:
3000 ms ?|? 内存限制:
65535 KB
难度:3
?????????????????????????? 输入
是一道规律题,但是用的大数,规律是:a[i]=a[i-1]*4+1 刚开始写的TLE,就打了个表过了(汗 ac代码: #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int num[105][105]; void add(int x) { int i,c=0,k; for(i=0;i<99;i++) { k=num[x][i]*4+c; if(i==0) k++; num[x][i]=k%10; c=k/10; } } void db() { int i,j; for(i=1;i<=100;i++) { num[i][0]=1; for(j=2;j<=i;j++) add(i); } } int main() { int t,i,m,j; memset(num,sizeof(num)); db();//打表 scanf("%d",&t); while(t--) { scanf("%d",&m); int bz=0; for(i=100;i>=0;i--) { if(num[m][i]&&bz==0) bz=1; if(bz) printf("%d",num[m][i]); } //for(j=i;j>=0;j--) //printf("%d",num[m][j]); printf("n"); } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |