BZOJ1002 FJOI2007 轮状病毒

Description

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



N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不同的3轮状病毒,如下图所示



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

Input

第一行有1个正整数n

Output

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

Sample Input

3

Sample Output

16


基尔霍夫矩阵推一推式子

然后加上高精度

#include<bits/stdc++.h>
using namespace std;
struct Big{
int t[110],len;
Big(){len=1;}
};
Big add(Big a,Big b){
a.len=max(a.len,b.len);
for(int i=1;i<=a.len;i++)a.t[i]=a.t[i]+b.t[i];
for(int i=1;i<=a.len;i++){
if(a.t[i]>=10){
a.t[i+1]+=a.t[i]/10;
a.t[i]%=10;
if(i==a.len)++a.len;
}
if(a.t[i]<0){
a.t[i]+=10;
a.t[i+1]--;
if(i+1==a.len&&!a.t[a.len])--a.len;
}
}
return a;
}
Big rdu(Big a,Big b){
for(int i=1;i<=a.len;i++){
a.t[i]-=b.t[i];
if(a.t[i]<0){
a.t[i]+=10;
a.t[i+1]--;
}
}
while(!a.t[a.len])a.len--;
return a;
}
Big add(Big a,int b){
int tmp=0;
while(b){
++tmp;
a.t[tmp]+=b;
b=a.t[tmp]/10;
a.t[tmp]%=10;
}
a.len=max(a.len,tmp);
return a;
}
Big mul(Big a,int b){
for(int i=1;i<=a.len;i++)a.t[i]*=b;
for(int i=1;i<=a.len;i++){
if(a.t[i]>=10){
a.t[i+1]+=a.t[i]/10;
a.t[i]%=10;
if(i==a.len)++a.len;
}
}
return a;
}
Big f[101];
int main(){
f[1].t[1]=1;
f[2].t[1]=5;
int n;cin>>n;
for(int i=3;i<=n;i++)f[i]=add(rdu(mul(f[i-1],3),f[i-2]),2);
for(int i=f[n].len;i>=1;i--)printf("%d",f[n].t[i]);
return 0;
}

BZOJ1002 FJOI2007 轮状病毒 【基尔霍夫矩阵+高精度】的更多相关文章

  1. bzoj1002: [FJOI2007]轮状病毒(基尔霍夫矩阵)

    1002: [FJOI2007]轮状病毒 题目:传送门 题解: 决定开始板刷的第一题... 看到这题的时候想:这不就是求有多少种最小生成树的方式吗? 不会啊!!!%题解... 什么鬼?基尔霍夫矩阵?? ...

  2. [bzoj1002] [FJOI2007]轮状病毒轮状病毒(基尔霍夫矩阵)

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

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

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

  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: 5577  Solved: 3031[Submit][Statu ...

  6. bzoj1002 轮状病毒 暴力打标找规律/基尔霍夫矩阵+高斯消元

    基本思路: 1.先观察规律,写写画画未果 2.写程序暴力打表找规律,找出规律 1-15的答案:1    5    16    45    121 320 841     2205   5776 151 ...

  7. 【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)

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

  8. BZOJ 4031 HEOI2015 小Z的房间 基尔霍夫矩阵+行列式+高斯消元 (附带行列式小结)

    原题链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4031 Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可 ...

  9. bzoj 1002 找规律(基尔霍夫矩阵)

    网上说的是什么基尔霍夫矩阵,没学过这个,打个表找下规律,发现 w[i]=3*w[i-1]-w[i-2]+2; 然后写个高精直接递推就行了 //By BLADEVIL var n :longint; a ...

随机推荐

  1. Pandas 的使用

    1. 访问df结构中某条记录使用loc或者iloc属性.loc是按照index或者columns的具体值,iloc是按照其序值.访问类似于ndarray的访问,用序列分别表示一维和二维的位置. 例如: ...

  2. redmine修改附件储存路径

    如果想把redmine 1.x.x 版本中的attachments files 放在自定义的目录(例如/home/darkofday/redmineAttachFile/).执行下列命令:cd /ho ...

  3. ovn-architecture

    本文翻译自ovs官方手册,有删减 OVN架构 OVN(即Open Virtual Network)是一款支持虚拟网络抽象的软件系统.OVN在OVS现有功能的基础上原生支持虚拟网络抽象,例如虚拟L2,L ...

  4. 【转发】Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  5. 数据库原理及应用-SQL数据操纵语言(Data Manipulation Language)和嵌入式SQL&存储过程

    2018-02-19 18:03:54 一.数据操纵语言(Data Manipulation Language) 数据操纵语言是指插入,删除和更新语言. 二.视图(View) 数据库三级模式,两级映射 ...

  6. Android Kotlin —— 语言结合

    2017 Google I/O 大会开始就宣布,将Kotlin语言作为安卓开发的一级编程语言.        Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发.   Ko ...

  7. Python打包分发工具setuptools简介(转)

    作为Python标准的打包及分发工具,setuptools可以说相当地简单易用.它会随着Python一起安装在你的机器上.你只需写一个简短的setup.py安装文件,就可以将你的Python应用打包. ...

  8. Java截取图片的一部分并保存为40*40的图片

    @Test public void testImag() { try { String path = "E:/flower2.jpg"; int x = 11, y = 20, c ...

  9. magento: Your web server is configured incorrectly. As a result, configuration files with sensitive information are accessible from the outside 解决方案

    在linux(以UBUNTU, CENTOS为例)下安装完成magento时,在进入后台时, 有些童鞋可能会发现有如下的提示: Your web server is configured incorr ...

  10. Vue打包上线部署

    一.路径问题 1.脚手架+webpack打包通过npm run build,但是后台tomcat部署上线的时候,会衍生出一些问题,比如,路径问题(因为在项目中,我们使用了绝对路径,这里必须要使用相对路 ...