bzoj 1002: [FJOI2007]轮状病毒
2014-01-05 19:08
260 查看
想了好久没想出来。
查了下题解是有递推式。
f[i]=3*f[i-1]-f[i-2]+2(p.s.至今还不明觉厉)
然后就是高精了。
View Code
由于知道递推式以后懒得写又抄了一次别人代码。。
查了下题解是有递推式。
f[i]=3*f[i-1]-f[i-2]+2(p.s.至今还不明觉厉)
然后就是高精了。
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #include<functional> #include<cmath> #include<cctype> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Rep(i,n) for(int i=0;i<n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define ForD(i,n) for(int i=n;i;i--) #define Forp(x) for(int p=pre[x];p;p=next[p]) #define RepD(i,n) for(int i=n;i>=0;i--) #define MAXN (100+10) #define F (10000) int n; struct Highn { int a[10000],len; Highn(){len=0;memset(a,0,sizeof(a));} Highn(int b) { len=0;memset(a,0,sizeof(a)); while (b) a[++len]=b%F,b/=F; if (len==0) len=1; } friend Highn operator*(int b,Highn a) { For(i,a.len) a.a[i]*=b; For(i,a.len) a.a[i+1]+=a.a[i]/F,a.a[i]%=F; if (a.a[a.len+1]) a.len++; return a; } friend Highn operator+(Highn b,Highn a) { Highn c; c.len=max(a.len,b.len); For(i,c.len) { c.a[i]+=a.a[i]+b.a[i]; c.a[i+1]+=c.a[i]/F; c.a[i]%=F; } c.len++; while (!c.a[c.len]) c.len--; return c; } friend Highn operator-(Highn a,Highn b) { Highn c; c.len=max(a.len,b.len); For(i,c.len) { c.a[i]+=a.a[i]-b.a[i]; if (c.a[i]<0) c.a[i]+=F,c.a[i+1]--; // c.a[i+1]+=c.a[i]/F; // c.a[i]%=F; } while (!c.a[c.len]) c.len--; return c; } void print() { printf("%d",a[len]); ForD(i,len-1) { printf("%04d",a[i]); } puts(""); } }f[MAXN]; int main() { // freopen(".in","r",stdin); // freopen(".out","w",stdout); scanf("%d",&n); f[1]=1,f[2]=5; if (n<=2) f .print(); else { Fork(i,3,n) f[i]=3*f[i-1]-f[i-2]+2; f .print(); } return 0; }
View Code
由于知道递推式以后懒得写又抄了一次别人代码。。
相关文章推荐
- BZOJ 1002 FJOI2007 轮状病毒 递推+高精度
- bzoj 1002[FJOI2007]轮状病毒
- bzoj 1002: [FJOI2007]轮状病毒(打表找规律或基尔霍夫矩阵)
- [bzoj1002][FJOI2007 轮状病毒] (生成树计数+递推+高精度)
- 【BZOJ1002】【FJOI2007】轮状病毒(生成树计数)
- BZOJ1002 [FJOI2007] 轮状病毒 【递推】
- [行列式计算]BZOJ1002: [FJOI2007]轮状病毒
- bzoj 1002: [FJOI2007]轮状病毒(生成树计数,高精度)
- BZOJ 1002 [FJOI2007]轮状病毒
- 【递推】【高精度】【FJOI 2007】【bzoj 1002】轮状病毒
- BZOJ_1002_[FJOI2007]_轮状病毒_(递推+高精)
- bzoj 1002: [FJOI2007]轮状病毒
- BZOJ 1002 [FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒 []
- BZOJ1002: [FJOI2007]轮状病毒
- BZOJ 1002([FJOI2007]轮状病毒-基尔霍夫矩阵)
- bzoj1002 [FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒 递推/基尔霍夫矩阵树定理
- bzoj 1002 FJOI2007 轮状病毒 题解
- BZOJ 题目1002 [FJOI2007]轮状病毒(高精度+基尔霍夫矩阵)