【bzoj1002】[FJOI2007]轮状病毒
2016-09-06 17:54
225 查看
1002: [FJOI2007]轮状病毒
Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 4381 Solved: 2393
[Submit][Status][Discuss]
Description
轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<ctime> #include<algorithm> using namespace std; struct bignum{int len,num[1010];}f[110],p; int n; bignum add(bignum a,bignum b) { int len; bignum c; memset(c.num,0,sizeof(c.num)); if(a.len>=b.len) len=a.len; else len=b.len; for(int i=1;i<=len;i++) { c.num[i]+=a.num[i]+b.num[i]; if(c.num[i]>=10) { c.num[i+1]+=1; c.num[i]-=10; } } if(c.num[len]>0) len++; c.len=len; return c; } bignum Mull(bignum a,int b) { int i,len; bignum c; len=a.len; memset(c.num,0,sizeof(c.num)); for(i=1;i<=len;i++) { c.num[i]+=(a.num[i]*b); if(c.num[i]>=10) { c.num[i+1]=c.num[i]/10; c.num[i]=c.num[i]%10; } } len=len+1; while(c.num[len]>0) { c.num[len+1]=c.num[len]/10; c.num[len++]%=10; } c.len=--len; return c; } bignum sub(bignum a1,bignum b1) { int len; if(a1.len>b1.len) len=a1.len; else len=b1.len; for(int i=1;i<=len;i++) { a1.num[i]=a1.num[i]-b1.num[i]; if(a1.num[i]<0) { a1.num[i]+=10; a1.num[i+1]--; } } while(a1.num[len]==0&&len>1) len--; a1.len=len; return a1; } void print(bignum c) { for(int i=c.len;i>0;i--) printf("%d",c.num[i]); printf("\n"); } int main() { scanf("%d",&n); f[1].len=f[2].len=p.len=1; f[1].num[1]=1; f[2].num[1]=5; p.num[1]=2; for(int i=3;i<=n;i++) f[i]=sub(add(Mull(f[i-1],3),p),f[i-2]); print(f ); return 0; }
View Code
相关文章推荐
- 【BZOJ 1002】[FJOI2007]轮状病毒
- BZOJ1002: [FJOI2007]轮状病毒
- 【递推】【高精度】【FJOI 2007】【bzoj 1002】轮状病毒
- BZOJ 1002([FJOI2007]轮状病毒-基尔霍夫矩阵)
- BZOJ_1002_[FJOI2007]_轮状病毒_(递推+高精)
- bzoj1002 [FJOI2007]轮状病毒
- 【BZOJ】1002: [FJOI2007]轮状病毒(DP+规律+高精度)
- BZOJ 1002: [FJOI2007]轮状病毒 递推/基尔霍夫矩阵树定理
- BZOJ 1002: [FJOI2007]轮状病毒
- bzoj 1002 FJOI2007 轮状病毒 题解
- BZOJ 题目1002 [FJOI2007]轮状病毒(高精度+基尔霍夫矩阵)
- [Bzoj1002][FJOI2007]轮状病毒
- [BZOJ1002] [FJOI2007] 轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒 高精度
- [BZOJ1002][FJOI2007]轮状病毒(打表找规律+高精度||结论)
- [BZOJ 1002] [FJOI 2007] 轮状病毒
- BZOJ 1002 FJOI2007 轮状病毒 递推+高精度
- BZOJ 1002:[FJOI2007] 轮状病毒 (基尔霍夫矩阵生成树定理)
- bzoj1002: [FJOI2007]轮状病毒
- 【bzoj1002】[FJOI2007]轮状病毒