Description

给定n(N<=100),编程计算有多少个不同的n轮状病毒。

Input

第一行有1个正整数n。

Output

将编程计算出的不同的n轮状病毒数输出

Sample Input

3

Sample Output

16
 
两种做法:
1.基尔霍夫矩阵+高斯消元暴搓
2.根据基尔霍夫矩阵推出推出递推公式推出f[i]=(f[i-2]*3-f[i-1]+2)。(解释见:http://vfleaking.blog.163.com/blog/static/17480763420119685112649/)
代码如下:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std; int n;
struct node
{
int a[],l;
node()
{
memset(a,,sizeof(a));
l = ;
}
friend inline node operator *(int x,node &y)
{
node ret; ret.l = y.l+;
for (int i = ;i <= y.l;++i)
{
ret.a[i] += y.a[i]*x;
ret.a[i+] += ret.a[i]/;
ret.a[i] %= ;
}
if (ret.a[ret.l] == ) ret.l--;
return ret;
}
friend inline node operator -(node x,node y)
{
node z; z.l = max(x.l,y.l);
for (int i = ;i <= z.l;++i)
{
z.a[i] = x.a[i]-y.a[i];
while (z.a[i] < )
z.a[i] += ,x.a[i+]--;
}
while (z.l > &&z.a[z.l] == )z.l--;
return z;
}
friend inline node operator +(node &x,int y)
{
node ret = x;
ret.a[] += y;
for (int i = ;i <= ret.l;++i)
{
if (ret.a[i] >= )
ret.a[i]-=,ret.a[i+]++;
else break;
}
if (ret.a[ret.l+]) ret.l++;
return ret;
}
inline void print()
{
for (int i = l;i >= ;--i)
printf("%d",this->a[i]);
}
}f[]; int main()
{
freopen("1002.in","r",stdin);
freopen("1002.out","w",stdout);
scanf("%d ",&n);
f[] = f[]+; f[] = f[] + ;
for (int i = ;i <= n;++i)
{
f[i] = *f[i-];
f[i] = f[i]-f[i-];
f[i] = f[i]+;
}
f[n].print();
fclose(stdin); fclose(stdout);
return ;
}

BZOJ 1002 轮状病毒的更多相关文章

  1. BZOJ 1002 - 轮状病毒 - [基尔霍夫矩阵(待补)+高精度]

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1002 Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生 ...

  2. BZOJ 1002 轮状病毒 矩阵树定理

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1002 题目大意: 给定n(N<=100),编程计算有多少个不同的n轮状病毒 思路 ...

  3. BZOJ 1002 轮状病毒 (基尔霍夫矩阵)

    题解:http://vfleaking.blog.163.com/blog/static/17480763420119685112649/ #include <iostream> #inc ...

  4. bzoj 1002 [FJOI2007]轮状病毒 高精度&&找规律&&基尔霍夫矩阵

    1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2234  Solved: 1227[Submit][Statu ...

  5. 生成树的计数(基尔霍夫矩阵):BZOJ 1002 [FJOI2007]轮状病毒

    1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3928  Solved: 2154[Submit][Statu ...

  6. BZOJ 1002 [FJOI2007]轮状病毒

    1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3106  Solved: 1724[Submit][Statu ...

  7. BZOJ 1002: [FJOI2007]轮状病毒【生成树的计数与基尔霍夫矩阵简单讲解+高精度】

    1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 5577  Solved: 3031[Submit][Statu ...

  8. bzoj 1002 [FJOI2007]轮状病毒——打表找规律

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1002 看 Zinn 的博客:https://www.cnblogs.com/Zinn/p/9 ...

  9. 【刷题】BZOJ 1002 [FJOI2007]轮状病毒

    Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...

随机推荐

  1. 空格&amp;nbsp在不同浏览器中显示距离不一致问题解决方法

      在ie.firefox.chrome浏览器上显示的效果不太一样,主要是前面的空格宽度不同. 网上资料说不同的浏览器会有不同的默认字体.一般 IE默认字体都是宋体,而firefox和chrome的默 ...

  2. LabVIEW设计模式系列——资源关闭后错误处理

    标准: 1.很多引用资源其打开函数和关闭函数对错误处理的方式有所不同:2.一般地NI的Help里对打开函数的错误端子的解释是这样的:如错误发生在VI或函数运行之前,VI或函数将把错误输入值传递至错误输 ...

  3. jquery easyui easyui-treegrid 使用异步加载数据

    jquery easyui easyui-treegrid 使用异步加载数据 jquery easyui easyui-treegrid 异步请求 >>>>>>&g ...

  4. 【转】[转]order by 1是什么意思?

    [转][转]order by 1是什么意思? ORDER BY 1 表示 所select 的字段按第一个字段排序 ORDER BY ASC应该没有这样写法,ORDER BY 后面不是字段就是数字, 可 ...

  5. UIimageView GIF动画

    1.代码如下 (注释都有) - (void)viewDidLoad { [super viewDidLoad]; UIImageView * bigImageView = [[UIImageView ...

  6. 2014年10月30日-----SQL的基础知识

    数据库的概念 结构化查询语言:structured query language 简称:SQL 数据库管理系统:database management system 简称:DBMS 数据库管理员:da ...

  7. java_设计模式_状态模式_State Pattern(2016-08-16)

    定义: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 类图: 状态模式所涉及到的角色有: ● 环境(Context)角色,也成上下文:定义客户端所感兴趣的接口,同时维护一个 ...

  8. 生成dll文件的示例

    看了好多网上写的关于dll文件生成和实用的资料发现多尔不全,都是抄来抄去,有的干脆就是搬用msdn上的原文,实在没有创意和可看的东西.于是本着学和实用的目的自己实践的东西分享给大家. 大前提:使用VS ...

  9. ACM HDU 2044 一只小蜜蜂

    Problem Description 有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数. 其中,蜂房的结构如下所示. Input 输入数据的第一 ...

  10. mysql 刘道成视频教程 第4-8课 --- 数据类型

    数据类型大纲图: 注:在mysql中,输入时,除了数值型,不要加单引号,其他的都要加上单引号,养成一种好习惯. 一.数值型: 整数型: 1)从数学上来讨论tinyint 1. 占据空间 2.存储范围 ...