题目大意:
  有一排n个格子,要在它们上面装管道。
  每个格子上的管道都是T形的,但是可以有三种流动的方向。
  每种都是把两个方向的水往另一个方向排出。
  如果方向是向左或向右,就是排到相邻的格子里。
  特别地,最左边的格子不能向左排水,最右边的格子不能向右排水。
  现在每个格子都有一些积水等待排出,问能使所有格子的水最后都会从下面流出的方案数。

思路:
  我们不妨用f[i][0~2]表示第i个格子排水方案数。
  0~2表示不同的方向。
  用0表示下,1表示左,2表示右。
  f[i][0]=f[i-1][1]+f[i-1][2];
  f[i][1]=f[i-1][0]+f[i-1][1]+f[i-1][2];
  f[i][2]=f[i-1][0]+f[i-1][1]+f[i-1][2];
  压到一维就是f[i]=f[i-1]*3-f[i-2]。
  然后又变成了一道入门题。
  然而题目并没有告诉你模数,所以需要高精度,总之就是特别恶心。

 #include<cmath>
#include<cstdio>
#include<cstring>
class BigInteger {
private:
static const int base=1e8;
int len;
int num[];
public:
BigInteger() {
len=;
memset(num,,sizeof num);
}
BigInteger &operator = (const int &x) {
len=;
num[]=x;
return *this;
}
BigInteger &operator = (const BigInteger &x) {
len=x.len;
memcpy(num,x.num,sizeof num);
return *this;
}
BigInteger operator * (const int &x) const {
BigInteger ans;
for(register int i=;i<=len;i++) {
ans.num[i]+=num[i]*x;
ans.num[i+]=ans.num[i]/base;
ans.num[i]%=base;
}
ans.len=len;
if(ans.num[len+]) ans.len++;
return ans;
}
BigInteger operator - (const BigInteger &x) const {
BigInteger ans;
for(register int i=;i<=len;i++) {
ans.num[i]+=num[i]-x.num[i];
if(ans.num[i]<) {
ans.num[i]+=base;
ans.num[i+]--;
}
}
ans.len=len;
if(!ans.num[len]&&len) ans.len--;
return ans;
}
void println() {
printf("%d",num[len]);
for(register int i=len-;i>=;i--) {
if(!num[i]) {
printf("");
continue;
}
for(register int j=log10(num[i]);j<=;j++) {
putchar('');
}
printf("%d",num[i]);
}
putchar('\n');
}
};
BigInteger f[];
int main() {
int n;
while(~scanf("%d",&n)) {
f[]=;
f[]=;
for(register int i=;i<=n;i++) {
f[i%]=f[(i-)%]*-f[(i-)%];
}
f[n%].println();
}
return ;
}

[POJ1205]Water Treatment Plants的更多相关文章

  1. POJ 1205 Water Treatment Plants(递推)

    题意   建设一条河岸的污水处理系统  河岸有n个城市   每一个城市都能够自己处理污水 V   也能够把污水传到相邻的城市处理 >或<   除了你传给我我也传给你这样的情况   其他都是 ...

  2. poj 1205 :Water Treatment Plants (DP+高精度)

    题意:有n个城市,它们由一个污水处理系统连接着,每个城市可以选择 1.将左边城市过来的污水和右边城市过来的污水连同本身的污水排到河里  >V< 2.将左边来的污水连同自己的污水排到右边   ...

  3. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  4. DP:0

    小故事: A * "1+1+1+1+1+1+1+1 =?" * A : "上面等式的值是多少" B : *计算* "8!" A *在上面等式 ...

  5. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  6. 2018 青岛ICPC区域赛E ZOJ 4062 Plants vs. Zombie(二分答案)

    Plants vs. Zombies Time Limit: 2 Seconds      Memory Limit: 65536 KB BaoBao and DreamGrid are playin ...

  7. Plants vs. Zombies(二分好题+思维)

    Plants vs. Zombies http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5819 BaoBao and DreamG ...

  8. zoj4062 Plants vs. Zombies 二分+模拟(贪心的思维)

    题目传送门 题目大意:有n个植物排成一排,标号为1-n,每株植物有自己的生长速度ai,每对植物浇一次水,该株植物就长高ai,现在机器人从第0个格子出发,每次走一步,不能停留,每一步浇一次水,总共可以走 ...

  9. [zz]The Royal Treatment

    http://www.cgw.com/Publications/CGW/2012/Volume-35-Issue-4-June-July-2012/The-Royal-Treatment.aspx T ...

随机推荐

  1. cpu几种架构区别

    转自:http://smilejay.com/2012/07/intel-procssor-architecture/ (1)x86 (IA-32,i386,x86-32,x32) x86是指基于In ...

  2. 实习day2:@2X图片,git,coding.net,

    @2X是5和6系列的图片,@3X是6P等大屏的图片 本公司目前只用@2X的图片适配. 比如20X27的图片 1x, 就是原始大小: 用2X, 就除以2,变成10X13.5: 如果用3X的, 就除以3, ...

  3. K&R《C语言》书中的一个Bug

    最近在重温K&R的C语言圣经,第二章中的练习题2-2引起了我的注意. 原题是: Write a loop equivalent to the for loop above without us ...

  4. Java Number类和Math类

    Java Number类 一般的,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double等. 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类 ...

  5. Linux下突然不识别无线网卡

    昨天还能用wifi的Linux,今天进去后发现没有了wifi的图标,ifconfig也不显示无线网卡.怎么办? 出现这种情况,肯定是上次关机之前做了一些操作导致的.我遇到过的一个情况是:Fedora2 ...

  6. MySQL----示例知识点整理

    示例语句: ),hour(c.created_at) from `behavior_client_view` c join `behavior_share` s on c.share_uuid=s.u ...

  7. 什么是VC、PE、LP、GP?

    天使基金主要关注原创项目构思和小型初创项目,投资规模大多在300万元以下:风险投资关注初创时期企业长期投资,规模在1000万元以下:私募股权投资主要关注3年内可以上市的成熟型企业. VC即ventur ...

  8. python生成器 协程

    生成器 参考文章:  协程   gevent 生成器进阶 看个例子: def gg(): n='' i=0 while True: n=yield i #通过send传入到n if not n: pa ...

  9. asp.net传多个值到其它页面的方法

    网站开发中,在页面之间的跳转,经常会用到传值,其中可能会传递多个值. 一.CommadArgument传多个值到其他页面. 像Gridview dataList repeater等数据绑定控件中,可以 ...

  10. thinkphp5.0目录结构

    下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下: project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ...