bzoj 1002: [FJOI2007]轮状病毒
2014-01-05 18:21
267 查看
想了好久没想出来。
查了下题解是有递推式。
f[i]=3*f[i-1]-f[i-2]+2(p.s.至今还不明觉厉)
然后就是高精了。
查了下题解是有递推式。
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; }由于知道递推式以后懒得写又抄了一次别人代码。。
相关文章推荐
- bzoj1002【fjoi2007】轮状病毒
- BZOJ 1002 [FJOI2007] 轮状病毒
- 【bzoj1002】【FJOI2007】【轮状病毒】【找规律】
- 【BZOJ 1002】: [FJOI2007]轮状病毒
- [bzoj1002][FJOI2007]轮状病毒_递推_高精度
- Bzoj1002 [FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒【生成树的计数与基尔霍夫矩阵简单讲解+高精度】
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
- [bzoj] 1002: [FJOI2007]轮状病毒
- bzoj1002[FJOI2007]轮状病毒
- [bzoj1002][FJOI2007]轮状病毒【高精度】【矩阵树定理】
- BZOJ1002 [FJOI2007]轮状病毒
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
- bzoj 1002: [FJOI2007]轮状病毒
- BZOJ1002 [FJOI2007]轮状病毒
- 【FJOI2007】bzoj1002 轮状病毒
- 【BZOJ1002】【FJOI2007】轮状病毒
- BZOJ1002: [FJOI2007]轮状病毒
- [BZOJ1002](FJOI 2007) 轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒