nyoj 45-棋盘覆盖 (高精度, 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
21 分析:
1、其实不管如何我们都能够在图(一)上面用图(二)铺满,并且不重复
2、所以这道题就变成了一个大数的计算问题(直接上Java-BigInteger) 核心代码:b.subtract(c).divide(d); // (b-1)/3
Java代码实现(AC):
import java.math.BigInteger;
import java.util.Scanner; public class Main{
public static void main(String agrs[]){
Scanner scan = new Scanner(System.in);
int t = scan.nextInt();
while(t != 0){
t = t - 1;
int a = scan.nextInt();
BigInteger b, c, d;
b = new BigInteger("4");
c = new BigInteger("1");
d = new BigInteger("3");
b = b.pow(a);
System.out.println(b.subtract(c).divide(d));
}
}
}PS:Python在处理过多的大数运算时会产生较大误差
Python(WA):
import math
a = (int)(input())
while a:
a = a - 1
b = (int)(input())
c = math.pow(2, b) * math.pow(2, b)
print((int)((c - 1) / 3))
nyoj 45-棋盘覆盖 (高精度, Java)的更多相关文章
- NYOJ 45 棋盘覆盖 模拟+高精度
题意就不说了,中文题... 小白上讲了棋盘覆盖,于是我就挖了这题来做. 棋盘覆盖的推导不是很难理解,就是分治的思想,具体可以去谷歌下. 公式就是f(k) = f(k - 1) * 4 + 1,再化解下 ...
- NYOJ 45 棋盘覆盖
棋盘覆盖 水题,题不难,找公式难 import java.math.BigInteger; import java.util.Scanner; public class Main { public s ...
- 棋盘覆盖(大数阶乘,大数相除 + java)
棋盘覆盖 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...
- 棋盘覆盖问题(算法分析)(Java版)
1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...
- 递归与分治策略之棋盘覆盖Java实现
递归与分治策略之棋盘覆盖 一.问题描述 二.过程详解 1.棋盘如下图,其中有一特殊方格:16*16 . 2.第一个分割结果:8*8 3.第二次分割结果:4*4 4.第三次分割结果:2*2 5.第四次分 ...
- 用python代码编写象棋界面,棋盘覆盖问题
编写象棋界面 import turtle t=turtle.Pen() t.speed(100) def angle(x,y): t.penup() t.goto(x+3,y+3) t.pendown ...
- bzoj 2706: [SDOI2012]棋盘覆盖 Dancing Link
2706: [SDOI2012]棋盘覆盖 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 255 Solved: 77[Submit][Status] ...
- 棋盘覆盖(一) ACM
棋盘覆盖 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2k×2k未被覆盖过的方格,求 ...
- CODEVS 2171 棋盘覆盖
2171 棋盘覆盖 给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少12的多米诺骨牌进行掩盖. 错误日志: 直接在模板上调整 \(maxn\) 时没有在相应邻接表数 ...
随机推荐
- Angular/Vue多复选框勾选问题
此页面效果以Angular实现,Vue也可按照其大致流程实现,其核心本质没有改变. 功能效果为:页面初始化效果为要有所有角色的复选框,要求初始化默认勾选的角色要显示勾选,之后,能按照最终勾选的状态提交 ...
- MYSQL DATE_FORMAT参数列表及用法
MYSQL DATE_FORMAT参数列表及用法 主要涉及用法 DATE_SUB(DATE, INTERVAL EXPR TYPE) DATE_FORMAT(DATE,FORMAT) REPLACE( ...
- Ubuntu 14.04 sudo免密码的方法| sudo不需要密码
Ubuntu 14.04 sudo免密码的方法| sudo不需要密码 cd /etc/sudoers.d sudo touch nopasswd4sudo sudo vi nopasswd4sudo ...
- 媒体查询文字大小.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- mysql如何解除死锁状态
第一种: 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程(如果您有SUPER权限,您可以看到所有线程.否则,您只能看到您自己的线程) sho ...
- 【C#多线程】2.线程池简述+两种传统的异步模式
线程池简述+两种传统的异步编程模式 1.线程池简述 首先我们要明确一点,编程中讲的线程与平时我们形容CPU几核几线程中的线程是不一样的,CPU线程是指逻辑处理器,比如4核8线程,讲的是这个cpu有8个 ...
- 不用循环控制、条件控制、三目运算符 实现阶乘n!
long func(int n) { ( n <= 1 && (n=1) ) || ( n*=func(n-1)); return n; } template<int N& ...
- 几种部署Goku API Gateway的方式,最快一分钟可使用上网关
本文将介绍几种部署Goku API Gateway的方式,最快一分钟可使用上为网关,详情请看全文. 什么是Goku API Gateway? Goku API Gateway (中文名:悟空 API ...
- 学习笔记49_Redis
Redis和memcache区别: 1 . mm是通过客户端驱动实现集群化,Redis是通过服务器配置文件集群 2. redis是可以进行持久化的存储 3. redis提供高级的数据结构,队列,栈都提 ...
- android内嵌H5页(webview)如何定位
一.切换至webview后再定位元素 (1)获取页面上下文 contexts = driver.contexts (2)切换至webview driver.switch_to.context(cont ...