BZOJ1002 轮状病毒
2024-10-19 05:33:45
Description
轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的。一个N轮状基由圆环上N个不同的基原子
和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道。如下图所示
N轮状病毒的产生规律是在一个N轮状基中删去若干条边,使得各原子之间有唯一的信息通道,例如共有16个不
同的3轮状病毒,如下图所示
现给定n(N<=100),编程计算有多少个不同的n轮状病毒
Input
第一行有1个正整数n
Output
计算出的不同的n轮状病毒数输出
基尔霍夫矩阵(啥...) 递推式f(i)=f(i-1)*3-f(i-2)+2
#include<iostream> #include<cstring> #include<cstdio> using namespace std; ; int f1[maxn],f2[maxn]; void add(int* a,int *b,int* c){ memset(c,,sizeof(c)); ; ;i<maxn;i++){ c[i]=a[i]+b[i]+x; x=c[i]/;c[i]%=; } } void del(int *a,int *b,int *c){//保证a>b memset(c,,sizeof(c)); ;i<maxn;i++){ if(a[i]<b[i]){ a[i]+=; a[i+]--; } c[i]=a[i]-b[i]; } } void g(){ int t1[maxn],t2[maxn],t3[maxn],t4[maxn],t5[maxn]; memset(t4,,]=; add(f1,f1,t1),add(t1,f1,t2); del(t2,f2,t3);add(t3,t4,t5); ;i<maxn;i++) f2[i]=f1[i],f1[i]=t5[i]; } void printAns(){ ;i>=;i--){ ) continue; ;j--){ printf("%d",f1[j]); }break; } } void init(){ memset(f1,,sizeof(f1)); memset(f2,,sizeof(f2)); f1[]=,f2[]=; } int main() { init(); int p;scanf("%d",&p); ;i<p-;i++) g(); printAns(); ; }
//高精写的太丑了...然而这还是调了半天才对...
From Linux
最新文章
- Mysql性能优化一
- 【转载】Windows下VSCode编译调试c/c++
- C#中获得机器的字符编码webName信息
- npm ERR publish 403,nodejs发布包流程
- 用github pages展示你的静态网页,多项目支持
- 《编写高质量代码-Web前端开发修改之道》笔记--第三章 高质量的HTML
- MFC对话框应用程序添加自定义消息
- USB通讯协议 &;&; 数据传输
- Lottie安卓开源动画库使用
- Linux-Nand Flash驱动(分析MTD层并制作NAND驱动)
- Time模块和datetime模块
- JavaScript使用点滴
- TopShelf安装多实例
- matlab简介 基本操作
- Oracle语言环境变量配置
- mysql的in和not in的用法(特别注意not in结果集中不能有null)
- 包--json 与 pickle 模块
- SQL语句添加删除修改字段[sql server 2000/2005]
- PHP-系统流程
- MySQL 密码设置
热门文章
- [Issue]repo/repo init-解决同步源码Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle
- 安装配置Oracle数据库时的一些处理思路
- 黄聪:MySql Host is blocked because of many connection errors; unblock with &#39;mysqladmin flush-hosts&#39; 解决方法(转)
- javascript 异步编程-setTimeout
- android 通知
- Codeforces Round #364 (Div. 2) Cards
- 通过 HTTP 头进行 SQL 注入
- js中如何操作json数据
- list,set,map,数组之间的相互转换详细解析
- 【转】Python处理HTML转义字符