[FJOI2007]轮状病毒
来源:互联网 发布:python 周期性任务 编辑:程序博客网 时间:2024/05/01 17:30
轮状病毒什么的,看着就是dp,看着就是找规律F(n)=3*F(n-1)-F(n-2)+2然后就很好做了?等等。n最大100唉?还要再加个高精度。#include<map>#include<queue>#include<cmath>#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>#define qread(x) x=read()#define mes(x,y) memset(x,y,sizeof(x))#define mpy(x,y) memcpy(x,y,sizeof(x))#define Maxn 1000#define INF 2147483647inline int read(){ char ch=getchar(); int f=1,x=0; while(!(ch>='0'&&ch<='9')){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+(ch-'0');ch=getchar();} return x*f;}struct Sint{int len,c[Maxn+1];void clear(){len=0;mes(c,0);}int give_int(int x){clear();while(x>0){len++;c[len]=x%10;x/=10;}}};void pSint(Sint &x){for(int i=x.len;i>=1;i--)printf("%d",x.c[i]);printf("\n");}Sint sub_int(Sint &x,int y){x.c[1]-=y;for(int i=1;i<=x.len;i++){while(x.c[i]<0){x.c[i+1]--;x.c[i]+=10;}}while(x.c[x.len]==0)x.len--;}Sint sub(Sint &x,Sint &y){x.len=std::max(x.len,y.len);for(int i=1;i<=x.len;i++)x.c[i]-=y.c[i];for(int i=1;i<=x.len;i++){while(x.c[i]<0){x.c[i+1]--;x.c[i]+=10;}}while(x.c[x.len]==0)x.len--;}Sint add(Sint &x,Sint &y){x.len=std::max(x.len,y.len);for(int i=1;i<=x.len;i++)x.c[i]-=y.c[i];for(int i=1;i<=x.len;i++){while(x.c[i]>9){x.c[i+1]+=x.c[i]/10;x.c[i]%=10;}}while(x.c[x.len+1]>0){x.len++;x.c[x.len+1]+=x.c[x.len]/10;x.c[x.len]%=10;}}Sint add_int(Sint &x,int y){x.c[1]+=y;for(int i=1;i<=x.len;i++){while(x.c[i]>9){x.c[i+1]+=x.c[i]/10;x.c[i]%=10;}}while(x.c[x.len+1]>0){x.len++;x.c[x.len+1]+=x.c[x.len]/10;x.c[x.len]%=10;}}Sint multi_int(Sint &x,int y){for(int i=1;i<=x.len;i++)x.c[i]*=y;for(int i=1;i<=x.len;i++){if(x.c[i]>9){x.c[i+1]+=x.c[i]/10;x.c[i]%=10;}}while(x.c[x.len+1]>0){x.len++;x.c[x.len+1]+=x.c[x.len]/10;x.c[x.len]%=10;}}//f[n]=3*f[n-1]-f[n-2]+2int main(){int n;qread(n);if(n==1)printf("1\n");else if(n==2)printf("2\n");else{Sint x,y,z;x.give_int(1);y.give_int(5);for(int i=3;i<=n;i++){z=y;multi_int(z,3);sub(z,x);add_int(z,2);x=y;y=z;}pSint(z);}}
查看原文:http://hz2016.tk/blog/?p=58
阅读全文
0 0
- 【FJOI2007】轮状病毒
- [FJOI2007]轮状病毒
- [FJOI2007]轮状病毒
- [FJOI2007]轮状病毒
- [FJOI2007]轮状病毒
- bzoj 1002: [FJOI2007]轮状病毒
- [Bzoj1002][FJOI2007]轮状病毒
- bzoj1002[FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒
- 1002: [FJOI2007]轮状病毒
- 【bzoj1002】【FJOI2007】【轮状病毒】
- [高精度][BZOJ1002][FJOI2007]轮状病毒
- 【FJOI2007】【BZOJ1002】轮状病毒
- bzoj1002【fjoi2007】轮状病毒
- [BZOJ1002] [FJOI2007] 轮状病毒
- BZOJ1002 [FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒
- BZOJ 1002 [FJOI2007]轮状病毒
- HDU 2112-HDU Today
- ConcurrentHashMap源码详解
- 进程和线程,vmstat,iostat,dstat,
- GTK显示GIF、GTK动画(图片连续播放)
- emoji表情存入数据库
- [FJOI2007]轮状病毒
- 9.08 笔记-抽象类与接口与多态
- Java设计模式_(行为型)_观察者模式
- 【codevs 2451】互不侵犯
- bitset+暴力——校门外的树(增强版)
- shell
- python里面random的使用
- 3.4 线程id获取
- LeetCode 96. Unique Binary Search Trees Python Solution, Catalan数 结点数为n的不同形态的二叉树一共有多少种