bzoj1089: [SCOI2003]严格n元树
生活随笔
收集整理的這篇文章主要介紹了
bzoj1089: [SCOI2003]严格n元树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這題方程就是f(i)=f(i-1)^n+1
高精度謝謝。
#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> using namespace std; struct node {int a[1100],len;node(){}void init(){memset(a,0,sizeof(a));a[1]=1;len=1;}void jia(int x){a[1]+=x;for(int i=1;i<=len;i++){a[i+1]+=a[i]/10;a[i]%=10;}int i=len;while(a[i+1]>0){i++;a[i+1]+=a[i]/10;a[i]%=10;}}node cheng(node n1,node n2){node n3;n3.len=n1.len+n2.len-1;memset(n3.a,0,sizeof(n3.a));for(int i=1;i<=n1.len;i++)for(int j=1;j<=n2.len;j++)n3.a[i+j-1]+=n1.a[i]*n2.a[j];for(int i=1;i<=n3.len;i++){n3.a[i+1]+=n3.a[i]/10;n3.a[i]%=10;}int i=n3.len;while(n3.a[i+1]>0){i++;n3.a[i+1]+=n3.a[i]/10;n3.a[i]%=10;}n3.len=i;return n3;}void jian(node n2){ for(int i=1;i<=len;i++)a[i]-=n2.a[i];for(int i=1;i<=len;i++){if(a[i]<0){a[i]+=10;a[i+1]--;}}while(a[len]==0)len--;} }f[2]; int main() {int n,d;scanf("%d%d",&n,&d);int now=0;f[now].init();for(int i=1;i<=d;i++){now=1-now;f[now].init();for(int j=1;j<=n;j++)f[now]=f[now].cheng(f[1-now],f[now]);f[now].jia(1);}f[now].jian(f[1-now]);for(int i=f[now].len;i>=1;i--)printf("%d",f[now].a[i]);printf("\n");return 0; }?
轉載于:https://www.cnblogs.com/AKCqhzdy/p/8525137.html
總結
以上是生活随笔為你收集整理的bzoj1089: [SCOI2003]严格n元树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: week1-绪论
- 下一篇: MySQL 规范及优化