【bzoj 1002】轮状病毒(高精度模板)
2017-09-27 09:07
363 查看
Description
轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示:
N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示:
现给定n(N<=100),编程计算有多少个不同的n轮状病毒
Input
第一行有1个正整数n
Output
计算出的不同的n轮状病毒数输出
Sample Input
3
Sample Output
16
对于这个玄学的东西大家可以去看这个大佬的博客:
http://vfleaking.blog.163.com/blog/static/17480763420119685112649/
所以说了这么多,到最后它就成了高精度模板。。。。
代码附上:
轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示:
N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示:
现给定n(N<=100),编程计算有多少个不同的n轮状病毒
Input
第一行有1个正整数n
Output
计算出的不同的n轮状病毒数输出
Sample Input
3
Sample Output
16
解题思路
由基尔霍夫矩阵可推知:f[i]=f[i-1]*3-f[i-2]+2对于这个玄学的东西大家可以去看这个大佬的博客:
http://vfleaking.blog.163.com/blog/static/17480763420119685112649/
所以说了这么多,到最后它就成了高精度模板。。。。
代码附上:
#include<cstdio> #include<algorithm> #include<cmath> #include<iostream> #include<cstring> #include<string> #include<cstdlib> using namespace std; struct ldx { int a[101],len; void operator = (ldx p) { len=p.len; for(int i=1;i<=len;i++) a[i]=p.a[i]; } void operator * (int p) { for(int i=1;i<=len;i++) a[i]*=p; for(int i=1;i<len;i++) if(a[i]>=10) {a[i+1]+=a[i]/10;a[i]%=10;} while(a[len]>=10) {a[len+1]+=a[len]/10;a[len]%=10;len++;} } void operator - (ldx p) { for(int i=1;i<=len;i++) a[i]-=p.a[i]; for(int i=1;i<len;i++) while(a[i]<0) {a[i]+=10;a[i+1]-=1;} while(a[len]==0) len--; } void operator + (int p) { a[1]+=p; for(int i=1;i<len;i++) if(a[i]>=10) {a[i+1]+=a[i]/10;a[i]%=10;} while(a[len]>=10) {a[len+1]+=a[len]/10;a[len]%=10;len++;} } }f[105]; int main() { int n;scanf("%d",&n); f[2].len=1;f[2].a[1]=5; f[3].len=2;f[3].a[1]=6;f[3].a[2]=1; for(int i=4;i<=n;i++) { f[i]=f[i-1];f[i]*3; f[i]-f[i-2];f[i]+2; } for(int i=f .len;i>=1;i--) printf("%d",f .a[i]); return 0; }
相关文章推荐
- [bzoj1002][FJOI2007]轮状病毒_递推_高精度
- [BZOJ1002][FJOI2007]轮状病毒(打表找规律+高精度||结论)
- [bzoj1002][FJOI2007 轮状病毒] (生成树计数+递推+高精度)
- BZOJ 1002 FJOI2007 轮状病毒 递推+高精度
- 【递推】【高精度】【FJOI 2007】【bzoj 1002】轮状病毒
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
- bzoj1002 [FJOI2007]轮状病毒(矩阵树定理+递推+高精度)
- bzoj1002[FJOI2007]轮状病毒 递推+高精度
- bzoj1002 轮状病毒 递推 高精度
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
- bzoj 1002: [FJOI2007]轮状病毒(生成树计数,高精度)
- [bzoj1002][FJOI2007]轮状病毒【高精度】【矩阵树定理】
- 【BZOJ】1002: [FJOI2007]轮状病毒(DP+规律+高精度)
- bzoj 1002 轮状病毒(高精度 + 找规律乱搞)
- 【BZOJ1002】【高精度】【找规律】轮状病毒
- [高精度][BZOJ1002][FJOI2007]轮状病毒
- BZOJ 1002: [FJOI2007]轮状病毒【生成树的计数与基尔霍夫矩阵简单讲解+高精度】
- [FJOJ2007][bzoj1002]轮状病毒(递推+高精度)
- [bzoj 1002] [FJOI2007]轮状病毒:数学,递推,高精度
- BZOJ1002(FJOI2007)[轮状病毒]--找规律+高精度