[bzoj1002] [FJOI2007]轮状病毒
2017-09-25 18:15
351 查看
并不知道怎么来的递推式f[i]=f[i-1]*3-f[i-2]+2据说是基尔霍夫矩阵但是完全不懂
之所以写这题是为了写一下高精
传送门
之所以写这题是为了写一下高精
传送门
#include<iostream> #include<cstdio> using namespace std; const int N=100; int n; struct data{ int a[N+10],len; }f[N+10]; data ymzc(data q,int k){ data ans;ans.len=0;int x=0; for(int i=1;i<=q.len;i++){ ans.a[i]=q.a[i]*k+x; x=ans.a[i]/10; ans.a[i]=ans.a[i]%10; } if (x){ ans.len=q.len+1; ans.a[ans.len]=x; } else ans.len=q.len; return ans; } data ymzans(data q,data w){ q.a[1]+=2;data ans;ans.len=0; for(int i=1;i<=q.len;i++){ ans.a[i]=q.a[i]-w.a[i]; if (ans.a[i]<0){ q.a[i+1]--;ans.a[i]+=10; } } ans.len=q.len; for(int i=ans.len;i;i--) if (!ans.a[i]) ans.len--;else break; return ans; } int main(){ scanf("%d",&n); f[1].a[1]=1;f[1].len=1;f[0].len=1; for(int i=2;i<=n;i++) f[i]=ymzans(ymzc(f[i-1],3),f[i-2]); for(int i=f .len;i;i--) printf("%d",f .a[i]); return 0; }
相关文章推荐
- BZOJ 1002:[FJOI2007] 轮状病毒 (基尔霍夫矩阵生成树定理)
- BZOJ 1002: [FJOI2007]轮状病毒【数学题】
- BZOJ 1002 [FJOI2007]轮状病毒
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
- bzoj1002[FJOI2007]轮状病毒
- bzoj1002[FJOI2007]轮状病毒 递推+高精度
- [BZOJ1002](FJOI 2007) 轮状病毒
- bzoj1002【fjoi2007】轮状病毒
- 【bzoj1002】【FJOI2007】【轮状病毒】【找规律】
- bzoj1002[FJOI2007]轮状病毒
- BZOJ 1002 FJOI2007 轮状病毒 递推+高精度
- bzoj 1002 [FJOI2007]轮状病毒 找规律/基尔霍夫矩阵
- BZOJ 1002: [FJOI2007]轮状病毒 高精度
- BZOJ 1002: [FJOI2007]轮状病毒
- BZOJ 1002 [FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒
- 【bzoj1002】[FJOI2007]轮状病毒
- 【bzoj 1002】 [FJOI2007]轮状病毒
- [bzoj1002][FJOI2007 轮状病毒] (生成树计数+递推+高精度)
- bzoj 1002: [FJOI2007]轮状病毒(生成树计数,高精度)