棋盘覆盖(大数阶乘,大数相除 + java)
棋盘覆盖
- 描述
-
在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2k×2k未被覆盖过的方格,求需要类似图2方格总的个数s。如k=1时,s=1;k=2时,s=5
图1
图2
- 输入
- 第一行m表示有m组测试数据;
每一组测试数据的第一行有一个整数数k; - 输出
- 输出所需个数s;
- 样例输入
-
3
1
2
3 - 样例输出
-
1
5
21accept:
-
#include<stdio.h>
#include<string.h>
#define MAXN 10010
int m[MAXN],pow[MAXN];
void bigpower(int n){int a,b;
memset(m,,sizeof(m));
m[]=;
for(int i=;i<n;++i){a=b=;
for(int j=;j<MAXN;++j){
a=m[j]*+b;
m[j]=a%;
b=a/;
}
}
int j=MAXN,i;
while(!m[--j]);
for(i=,j;j>=;j--,i++)pow[i]=m[j];
for(j=i-;j>=;j--){
if(m[j]){
m[j]--;
}
else m[j]+=;
}
int sum=,x=,t=;
for(int k=;k<i;++k){
sum=sum*+pow[k];
if(sum>=)printf("%d",sum/),t=;
else if(t)printf("");
sum%=;
}
puts("");
}
int main(){
int m,k;
scanf("%d",&m);
while(m--){
scanf("%d",&k);
bigpower(k+k);
}
return ;
}java:
package 随笔; import java.math.BigInteger;
import java.util.Scanner; public class 棋盘覆盖 {
public static void main(String[] s){
Scanner cin = new Scanner(System.in);
int T = cin.nextInt();
while(T-- > ){
BigInteger ans = new BigInteger("");
int k = cin.nextInt();
while(k-- > ){
ans = ans.multiply(BigInteger.valueOf());
}
ans = ans.add(BigInteger.valueOf(-));
ans = ans.divide(BigInteger.valueOf());
System.out.println(ans);
} } }
棋盘覆盖(大数阶乘,大数相除 + java)的更多相关文章
- 棋盘覆盖问题(算法分析)(Java版)
1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...
- 【ACM】棋盘覆盖 - 大数除
棋盘覆盖 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...
- 【ACM】大数阶乘 - Java BigInteger实现
大数阶乘 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数 ...
- HDU 1133 Buy the Ticket (数学、大数阶乘)
Buy the Ticket Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- nyist28大数阶乘
http://acm.nyist.net/JudgeOnline/problem.php?pid=28 大数阶乘 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们 ...
- 大数阶乘(c语言)
大数阶乘.代码比较简单. #include<stdio.h> #include<string.h> #define MAXN 25000 // 如果你的阶乘N比较大,建议大一点 ...
- 【大数阶乘】NYOJ-28
大数阶乘 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数 ...
- 大数阶乘 nyoj
大数阶乘 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它? 输入 输入一个整数 ...
- 递归与分治策略之棋盘覆盖Java实现
递归与分治策略之棋盘覆盖 一.问题描述 二.过程详解 1.棋盘如下图,其中有一特殊方格:16*16 . 2.第一个分割结果:8*8 3.第二次分割结果:4*4 4.第三次分割结果:2*2 5.第四次分 ...
随机推荐
- [RxJS] Using Observable.create for fine-grained control
Sometimes, the helper methods that RxJS ships with such as fromEvent, fromPromise etc don't always p ...
- python 弄github代码库列表
1.底 项目要求,征求github的repo的api,为了能够提取repo对数据进行分析. 研究一天.最终克服该问题,較低下. 由于github的那个显示repo的api,列出了 ...
- Timer.5 - Synchronising handlers in multithreaded programs
This tutorial demonstrates the use of the boost::asio::strand class to synchronise callback handlers ...
- Flashback Query(函数示例)
Flashback Query 函数,存储过程,包,触发器等对象Flashback Drop 可以闪回与表相关联的对象, 如果是其他的对象,比如function,procedure,trigger等. ...
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
第二章:高层体系结构 容器 1 什么是容器? servelet没有main()方法.它们受控于另一个Java应用,这个Java应用称为容器(Container) Tomcat就是这样一个容器.Web服 ...
- SQL SERVER 自定义函数 split
Create function [dbo].[split] ( ), ) ) )) as begin declare @i int set @SourceSql=rtrim(ltrim(@Source ...
- td 单元格 内容自动换行
<table width="100%" border="1" align="center"> <tr> <td ...
- sql 参数
sqlserver :传参数是“@” oracle:是“:” mysql:是“?”
- 如何在程序退出的时候清除activity栈
在公司里接手了一个后期的项目,由于项目前期对activity栈管理的不够谨慎,所以导致了在某些情况下程序退出的时候没有将activity栈清除掉.在网上找到的无非就是那几种例子,都不是最好的解决办法. ...
- OC——UIlabel text的常规应用
UILabel *downloader = [[UILabel alloc]init]; NSString *downloadCount = [[LibraryArr objectAtIndex:in ...