码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ1002: [FJOI2007]轮状病毒

时间:2017-12-28 11:44:31      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:base   tmp   amp   src   fine   operator   math   string   ==   

n<=100的形如技术分享图片的图有多少生成树。不取模。

$f(i)=3*f(i-1)-f(i-2)+2$,VFK的题解

技术分享图片
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<stdlib.h>
 5 //#include<queue>
 6 #include<math.h>
 7 //#include<time.h>
 8 //#include<iostream>
 9 using namespace std;
10 
11 int n;
12 #define maxn 311
13 const int base=100000000;
14 struct LLL
15 {
16     int num[maxn],len;
17     LLL() {len=0; memset(num,0,sizeof(num));}
18     void operator = (int x)
19     {
20         if (x==0) {num[len=1]=0; return;}
21         while (x) {num[++len]=x%base; x/=base;}
22     }
23     LLL operator + (const LLL &b)
24     {
25         LLL ans;
26         for (int i=1,top=ans.len=max(len,b.len);i<=top;i++)
27         {
28             ans.num[i]+=(i<=len?num[i]:0)+(i<=b.len?b.num[i]:0);
29             if (ans.num[i]>=base)
30             {
31                 ans.num[i]-=base;
32                 ans.num[i+1]++;
33             }
34         }
35         ans.len+=(ans.num[ans.len+1]>0);
36         return ans;
37     }
38     LLL operator - (const LLL &b)
39     {
40         LLL ans;
41         for (int i=1,top=ans.len=len;i<=top;i++)
42         {
43             ans.num[i]+=num[i]-(i<=b.len?b.num[i]:0);
44             if (ans.num[i]<0)
45             {
46                 ans.num[i]+=base;
47                 ans.num[i+1]--;
48             }
49         }
50         ans.len-=(ans.num[ans.len]==0);
51         return ans;
52     }
53     LLL operator + (int b)
54     {
55         LLL tmp; tmp=b;
56         return *this+tmp;
57     }
58     void print()
59     {
60         printf("%d",num[len]);
61         for (int i=len-1;i;i--) printf("%08d",num[i]);
62     }
63 };
64 
65 LLL a[maxn];
66 int main()
67 {
68     scanf("%d",&n);
69     a[1]=1; a[2]=5;
70     for (int i=3;i<=n;i++) a[i]=a[i-1]+a[i-1]+a[i-1]-a[i-2]+2;
71     a[n].print();
72     return 0;
73 }
View Code

 

BZOJ1002: [FJOI2007]轮状病毒

标签:base   tmp   amp   src   fine   operator   math   string   ==   

原文地址:https://www.cnblogs.com/Blue233333/p/8133764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!