首页 > 代码库 > BZOJ 1002: [FJOI2007]轮状病毒 []
BZOJ 1002: [FJOI2007]轮状病毒 []
我也不知道该说点什么好
难道bzoj不支持重载运算符?洛谷AC bzoj WA
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int N=100;int n;struct Big{ int d[N],l; int& operator [](int x){return d[x];} Big(){l=1;memset(d,0,sizeof(d));}}f[105];Big operator *(Big a,int b){ int g=0; for(int i=1;i<=a.l;i++){ g+=a[i]*b; a[i]=g%10; g/=10; } for(;g;g/=10) a[++a.l]=g%10; return a;} Big operator -(Big a,Big b){ for(int i=1;i<=b.l;i++){ if(a[i]<b[i]) a[i]+=10,a[i+1]--; a[i]-=b[i]; } int p=b.l+1; while(a[p]<0) a[p]+=10,a[p+1]--; while(a[a.l]==0) a.l--; return a;}Big operator +(Big a,int b){ int g=b,i=1; for(;g;i++) g+=a[i],a[i]=g%10,g/=10; a.l=max(a.l,i); return a;}void print(Big &a){ for(int i=a.l;i>=1;i--) printf("%d",a[i]);} int main(){ scanf("%d",&n); f[1].l=1;f[1][1]=1; f[2].l=1;f[2][1]=5; for(int i=3;i<=n;i++) f[i]=f[i-1]*3-f[i-2]+2; print(f[n]);}
BZOJ 1002: [FJOI2007]轮状病毒 []
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。