uva 10254——The Priest Mathematician
2016-03-28 21:37
585 查看
题意:汉诺塔题目的变形,有4根柱子,可以把顶部的k个盘子移到最后的柱子上,然后按照汉诺塔,问最后走的最小步数。
思路:递推,经过递推可以发现f
= f[k]*2+g[n-k],其中f
为4个柱子时的最小步数,g
为3根柱子的最小步数。要用java大数来解决。
code:
思路:递推,经过递推可以发现f
= f[k]*2+g[n-k],其中f
为4个柱子时的最小步数,g
为3根柱子的最小步数。要用java大数来解决。
code:
import java.math.*; import java.util.Scanner; public class Main { public static void main(String args[]){ BigInteger f[] = new BigInteger[10010]; f[0] = BigInteger.valueOf(0); f[1] = BigInteger.valueOf(1); int i = 2; int k=1; while(i <= 10000){ BigInteger add = BigInteger.valueOf(1).shiftLeft(k); for(int j=0; j<k+1 && i<=10000; ++j){ f[i] = f[i-1].add(add); ++i; } ++k; } Scanner cin = new Scanner(System.in); while(cin.hasNext()){ int n = cin.nextInt(); System.out.println(f ); } } }
相关文章推荐
- 数据流图的画法
- 【bzoj2006】[NOI2010]超级钢琴 堆+st表
- java 堆排序
- ooVoo(视频通讯)
- OC中的Values——and——Collections
- WebService学习之旅(六)使用Apache Axis2实现WebService客户端调用
- WebService学习之旅(六)使用Apache Axis2实现WebService客户端调用
- 归并算法--MergeSort
- hdu 5651 (组合数学 + 阶乘求逆元)
- JDK判断对象死亡用过的和正在用的两种算法
- WebService学习之旅(六)使用Apache Axis2实现WebService客户端调用
- ASP.NET MVC 表单提交List到Controller
- 1到a是倒数和。
- BZOJ3097Hash Killer I
- 2016年蓝桥杯java B组省赛总结及注意1
- 数据结构,链表基本操作
- Java和JVM运行原理
- java-堆排序
- HDOJ 1116-Play on Words【欧拉路径+欧拉回路+并查集】
- HDU-5652 India and China Origins(并查集)