【BZOJ 1002】: [FJOI2007]轮状病毒
题目大意:(略)
题解:
第一眼,这不是矩阵树裸体,看了看样例,心想3就有16,那100岂不是要上天……
果然炸long long……emmmm该不会要打高精除吧……害怕,按照老师的话,不可能考高精除(++flag)……一定有鬼!
果然vfk的题解教育了我……
大力化简行列式……emmmmm害怕。
得出一个神奇的递推式$Ans_{[i]}=3*Ans_{[i-1]}-Ans_{[i-2]}+2,Ans_{[1]}=1,Ans_{[2]}=5$。
不如打表……
代码:
#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
const int N=;
struct Bigint{
inline void e(int k){
memset(a,,sizeof(a));
if(!k) {w=,a[]=;return;}
w=;
while(k) a[++w]=k%,k/=;
}
int a[N],w;
inline void update(){
for(int i=;i<=w;++i)
a[i+]+=a[i]/,a[i]%=;
while(a[w+])
++w,a[w+]+=a[w]/,a[w]%=;
}
friend Bigint operator +(Bigint a,Bigint b){
Bigint c;c.e();
for(int i=;i<=a.w||i<=b.w;++i)
c.a[i]=a.a[i]+b.a[i];
c.w=max(a.w,b.w);
c.update();
return c;
}
friend Bigint operator -(Bigint a,Bigint b){
for(int i=;i<=a.w;++i){
a.a[i]-=b.a[i];
if(a.a[i]<) a.a[i+]-=,a.a[i]+=;
}
while(!a.a[a.w]) --a.w;
return a;
}
friend Bigint operator *(Bigint a,int b){
for(int i=;i<=a.w;++i)
a.a[i]*=b;
a.update();
return a;
}
inline void output(){
for(int i=w;i;--i)
putchar(a[i]+'');
putchar('\n');
}
}ans[];
int main(){
ans[].e(),ans[].e();
ans[].e();
int n;
scanf("%d",&n);
for(int i=;i<=n;++i)
ans[i]=ans[i-]*-ans[i-]+ans[];
ans[n].output();
}
【BZOJ 1002】: [FJOI2007]轮状病毒的更多相关文章
- bzoj 1002 [FJOI2007]轮状病毒 高精度&&找规律&&基尔霍夫矩阵
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2234 Solved: 1227[Submit][Statu ...
- 生成树的计数(基尔霍夫矩阵):BZOJ 1002 [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3928 Solved: 2154[Submit][Statu ...
- BZOJ 1002 [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3106 Solved: 1724[Submit][Statu ...
- BZOJ 1002: [FJOI2007]轮状病毒【生成树的计数与基尔霍夫矩阵简单讲解+高精度】
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5577 Solved: 3031[Submit][Statu ...
- bzoj 1002 [FJOI2007]轮状病毒——打表找规律
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1002 看 Zinn 的博客:https://www.cnblogs.com/Zinn/p/9 ...
- 【刷题】BZOJ 1002 [FJOI2007]轮状病毒
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...
- BZOJ 1002 FJOI2007 轮状病毒 递推+高精度
题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring& ...
- 【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
1002: [FJOI2007]轮状病毒 Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同 ...
- 1002: [FJOI2007]轮状病毒
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2609 Solved: 1450[Submit][Statu ...
- 【BZOJ】1002: [FJOI2007]轮状病毒(DP+规律+高精度)
http://www.lydsy.com/JudgeOnline/problem.php?id=1002 其实我还是看题解的,而且看了题解也没明白那公式怎么来的T_T,先水过了先把....以后研究一下 ...
随机推荐
- 飞鱼相册笔记(1)----外置SD卡文件夹名称不区分大小写
飞鱼相册笔记(1)----外置SD卡文件夹名称不区分大小写 在飞鱼相册发布的第一个测试版中,很多用户表示无法查看外置SD卡中的照片.乍一听觉得加个外置SD卡的根目录,然后在扫描所有图片的时候把这个根目 ...
- .Net中的并行编程-7.基于BlockingCollection实现高性能异步队列
三年前写过基于ConcurrentQueue的异步队列,今天在整理代码的时候发现当时另外一种实现方式-使用BlockingCollection实现,这种方式目前依然在实际项目中使用.关于Blockin ...
- 面试题之C# 内存管理与垃圾回收
面试题之C# 内存管理与垃圾回收 你说说C# 的内存管理是怎么样的 这句话我记了一个多礼拜了, 自从上次东北师大面试之后, 具体请看<随便扯扯东北师大的面试>. 国庆闲着没事, 就大概了解 ...
- Demo1
<!DOCTYPE html> <html lang="zh"> <header> <meta charset="utf-8&q ...
- DB2常用命令2
1.启动实例(db2inst1):实例相当于informix中的服务 db2start 2.停止实例(db2inst1): db2stop 3.列出所有实例(db2inst1) db2ilist 4. ...
- 面试题-一个for循环输出一个棱形
用一个for循环输出以下棱形 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
- Vue 仿B站滑动导航
仿照B站制作的滑动导航功能,进行了部分优化,例如可定制默认选中元素,并将选中元素居中显示,可动态更改数据,可定制回调函数取的下标和选中元素内容,可根据需求制作N级联动 已开发成插件,使用方法与源码请前 ...
- python---haproxy---文件操作
haproxy 文件操作,操作属于简单操作,不复杂 # -*- coding:utf-8 -*- # LC def search(*args): #查找Haproxy文件中的服务器 list1 = [ ...
- Colossus: Successor to the Google File System (GFS)
Colossus is the successor to the Google File System (GFS) as mentioned in the recent paper on Spanne ...
- Jersey VS Django-Rest
在对Restful服务框架做对比前,主要先说说Restful设计的三大主要元素:以资源为核心的资源方法.资源状态.关系链接超媒体表述. 辅助的有内容协商.安全.版本化设计等. Jersey作为Java ...