UVA10254 - The Priest Mathematician(找规律)

题目链接

题目大意:4根柱子的汉诺塔。

解题思路:题目里面有提示,先借助四个柱子移走k个,然后在借助三个柱子移走剩余的n - k个。再把n个移动到n - k个所在柱子。那么F[n] = min(2 * F[k] + H[n - k]);H[n - k] = 2^(n - k) - 1;把前面的60项打出来,再打印出F[n] - f[n - 1],会发现规律:

F[1] = 1。

F[2] = F[1] + 2^1;

F[3] = F[2] + 2^1;(2个)

f[4] = f[3] + 2^2;

f[5] = f[4] + 2^2;

f[6] = f[5] + 2^2;(3个)

F[7] = f[6] + 2^3;

... (4个)

可是n到达10000,结果要用到大数。

代码:

import java.util.*;
import java.math.*;
import java.io.*; public class Main { static BigInteger f[] = new BigInteger[10005];
public static void init () { f[0] = BigInteger.ZERO;
f[1] = BigInteger.valueOf(1);
int k = 1, j = 2;
BigInteger addnum; while (j <= 10000) {
addnum = BigInteger.valueOf(1).shiftLeft(k);
for (int i = 0; i < k + 1 && j <= 10000; i++, j++)
f[j] = f[j - 1].add(addnum);
k++;
}
} public static void main(String args[]) { Scanner cin = new Scanner(System.in);
init(); while (cin.hasNext()) { int n = cin.nextInt();
System.out.println(f[n]);
}
}
}

UVA10254 - The Priest Mathematician(找规律)的更多相关文章

  1. 递推+高精度+找规律 UVA 10254 The Priest Mathematician

    题目传送门 /* 题意:汉诺塔问题变形,多了第四个盘子可以放前k个塔,然后n-k个是经典的汉诺塔问题,问最少操作次数 递推+高精度+找规律:f[k]表示前k放在第四个盘子,g[n-k]表示经典三个盘子 ...

  2. UVA 10254 - The Priest Mathematician (dp | 汉诺塔 | 找规律 | 大数)

    本文出自   http://blog.csdn.net/shuangde800 题目点击打开链接 题意: 汉诺塔游戏请看 百度百科 正常的汉诺塔游戏是只有3个柱子,并且如果有n个圆盘,至少需要2^n- ...

  3. hdu 3951 - Coin Game(找规律)

    这道题是有规律的博弈题目,,, 所以我们只需要找出规律来就ok了 牛人用sg函数暴力找规律,菜鸟手工模拟以求规律...[牢骚] if(m>=2) { if(n<=m) {first第一口就 ...

  4. HDU 5703 Desert 水题 找规律

    已知有n个单位的水,问有几种方式把这些水喝完,每天至少喝1个单位的水,而且每天喝的水的单位为整数.看上去挺复杂要跑循环,但其实上,列举几种情况之后就会发现是找规律的题了= =都是2的n-1次方,而且这 ...

  5. hdu4952 Number Transformation (找规律)

    2014多校 第八题 1008 2014 Multi-University Training Contest 8 4952 Number Transformation Number Transform ...

  6. CF456B Fedya and Maths 找规律

    http://codeforces.com/contest/456/problem/B CF#260 div2 B Fedya and Maths Codeforces Round #260 B. F ...

  7. hdu 4731 2013成都赛区网络赛 找规律

    题意:找字串中最长回文串的最小值的串 m=2的时候暴力打表找规律,打表可以用二进制枚举

  8. 找规律 Codeforces Round #290 (Div. 2) A. Fox And Snake

    题目传送门 /* 水题 找规律输出 */ #include <cstdio> #include <iostream> #include <cstring> #inc ...

  9. 找规律 ZOJ3498 Javabeans

    Javabeans are delicious. Javaman likes to eat javabeans very much. Javaman has n boxes of javabeans. ...

随机推荐

  1. MVC系列学习(三)-EF的延迟加载

    1.什么叫延迟加载 字面上可以理解为,一个动作本该立即执行的动作,没有立即执行 2.从代码上理解 static void Main(string[] args) { //执行该语句的时候,查看sql监 ...

  2. js常用操作~~~~将持续更新

    1.替换多个模板变量 var s="my javascript is very poor,who can help me?" var reg=/(\w*)my(.*)is(.*)c ...

  3. CentOS配置网卡以及克隆

    上一篇的虚拟机安装完成后是可以上网的,但是ip地址是动态的,因为后期的需要,我们要配置下网卡,改成静态的IP地址 1.打开终端,输入 ifconfig 查看虚拟机中的网卡,发现时ens33而不是平常见 ...

  4. PD(Power Delivery)充电协议

    关于PD的历史进程,可以在我转载的另一篇文章中了解 http://www.cnblogs.com/Hello-words/p/7851627.html PD 1.0 用的是 BFSK在 VBUS上进行 ...

  5. webpack 打包后 Uncaught SyntaxError: Unexpected token <

    问题描述:npm run dev 没报错.是可以正常运行的, npm run build 过程也没报错, 但是打开dist   index.html  就报错了  错误内容:       解决方法: ...

  6. WinServer2008配置任务计划

    window server 2008下配置任务计划 打开window servers 2008下任务计划配置工具 点击“开始”-->“管理工具”-->“任务计划程序”,打开任务计划配置工具 ...

  7. html——特例

    1.a标签与a标签之间有3px距离 2.标准流中的文字不会被浮动的盒子遮挡 <div style="width:150px;height:150px;background-color: ...

  8. MySQL主从备份配置

    MySQL主从热备配置 两台服务器的MySQL版本都是5.5.41master:192.168.3.119slave:192.168.3.120 MySQL主服务器配置:1.创建用于备份的用户 gra ...

  9. windows设置右键菜单

    1. 打开注册表,(win + R,输入regedit) 2. 在 HKEY_CLASSES_ROOT\Directory\Background\shell 中,新建项:如(cmder),在 cmde ...

  10. iic通讯 FPGA实现 mpu6050为例

    IIC最常用的通讯协议,但普遍用于单片机.arm这些,用FPGA实现大材小用,但对于菜鸡水平练练手很不错,考验串并转换和时序的控制.今天我就以mpu6050陀螺仪为例,实现FPGA的iic通信. 1. ...