POJ 1205 Water Treatment Plants JAVA高精度+DP *
2017-01-01 19:13
477 查看
题目地址:http://poj.org/problem?id=1205
1.把自己的污水排到河里V
2.把自己的污水送到右边>
3.把自己的污水送到左边<
至少要有一个城市排水。要求给N个城市,方案种数。
用递推的方法,从1个到n个
定义A(n)为n个城市的总数,也就是这n个城市可以解决排水问题
那么就尝试从n个城市推到n-1
假设:
1.第n个城市是V,那么也就是有A(n-1)种
2.第n个城市是<:那么有两种可能
第n-1个城市是V或者<,那么就A(n-1)种可能
第n-1个城市是>,也就是增加了 A(n-1)-A(n-2)种
所以 A(n)=3*A(n-1)-A(n-2);
1.把自己的污水排到河里V
2.把自己的污水送到右边>
3.把自己的污水送到左边<
至少要有一个城市排水。要求给N个城市,方案种数。
用递推的方法,从1个到n个
定义A(n)为n个城市的总数,也就是这n个城市可以解决排水问题
那么就尝试从n个城市推到n-1
假设:
1.第n个城市是V,那么也就是有A(n-1)种
2.第n个城市是<:那么有两种可能
第n-1个城市是V或者<,那么就A(n-1)种可能
第n-1个城市是>,也就是增加了 A(n-1)-A(n-2)种
所以 A(n)=3*A(n-1)-A(n-2);
import java.util.*; import java.math.*; import java.text.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); BigInteger[] d = new BigInteger[105]; d[1]=BigInteger.valueOf(1); d[2]=BigInteger.valueOf(3); for(int i=3;i<=100;++i){ d[i]=d[i-1].multiply(BigInteger.valueOf(3)).subtract(d[i-2]); } while(cin.hasNext()){ int n=cin.nextInt(); System.out.println(d ); } } }
相关文章推荐
- POJ 1205 Water Treatment Plants(递推)
- POJ 2356 POJ 3370 HDU 1205 鸽笼原理
- poj1205 Water Treatment Plants
- poj 1205 Water Treatment Plants——DP+高精度
- POJ 1205 Water Treatment Plants(递推)
- poj 1205 :Water Treatment Plants (DP+高精度)
- poj 1205 :Water Treatment Plants (DP+高精度)
- 抽屉定理poj 3370|| hdu1808 Halloween treats || hdu 1205 吃糖果 ||poj 2356
- 鸽巢原理:hdu 1205 吃糖果+poj 2356 Find a multiple+poj 3370 Halloween treats
- POJ 1205
- POJ 1205 Water Treatment Plants(递推)
- poj 2007 Scrambled Polygon
- poj 1273 最大流
- poj 3636
- poj 3126 Prime Path(BFS)
- POJ 3370 Halloween treats
- poj1830 开关问题 【Gauss消元】
- POJ 1011 Sticks
- POJ 1436 Horizontally Visible Segments 线段树 成段更新
- POJ 3525/UVA 1396 Most Distant Point from the Sea(二分+半平面交)