bzoj 1002 [FJOI2007]轮状病毒——打表找规律
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1002
看 Zinn 的博客:https://www.cnblogs.com/Zinn/p/9252831.html
时隔六个月,自己终于也 A 了这道题。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define db double
using namespace std;
const int N=;
int n;db a[N][N];
db get()
{
db ret=;
for(int i=;i<=n;i++)
{
for(int j=i+;j<=n;j++)
if(fabs(a[j][i])>fabs(a[i][i]))
{
for(int t=i;t<=n;t++)swap(a[i][t],a[j][t]);
}
if(!a[i][i])return ;
for(int j=i+;j<=n;j++)
{
db sl=a[j][i]/a[i][i];
for(int t=i;t<=n;t++)a[j][t]-=sl*a[i][t];
}
ret*=a[i][i];
}
return ret;
}
int main()
{
int lm;scanf("%d",&lm);
for(n=;n<=lm;n++)
{
for(int i=;i<=n;i++)for(int j=;j<=n;j++)a[i][j]=;
for(int i=;i<=n;i++)
{
a[i][i]+=;
i==?a[i][n]-=:a[i][i-]-=;
i==n?a[i][]-=:a[i][i+]-=;
a[i][n+]-=;a[n+][i]-=;
}
a[n+][n+]+=n;
printf("%.0f ",get());
}
puts("");
return ;
}
打表
精度误差真的很大。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=,base=1e8;
int n,a[N][N];
void mul(int *a,int *ret,int b)
{
ret[]=a[];
for(int i=;i<=a[];i++)
ret[i]=a[i]*b;
for(int i=;i<=ret[];i++)
ret[i+]+=ret[i]/base,ret[i]%=base;
while(ret[ret[]+])ret[]++,ret[ret[]+]+=ret[ret[]]/base,ret[ret[]]%=base;
}
void dec(int *a,int *b)
{
for(int i=;i<=a[];i++)
{
a[i]-=b[i];
if(a[i]<)a[i]+=base,a[i+]--;
}
while(a[]&&!a[a[]])a[]--;
}
void add(int *a,int b)
{
a[]+=b;
for(int i=;i<=a[]&&a[i]>=base;i++)
a[i+]++,a[i]-=base;
if(a[a[]+])a[]++;
}
void print(int *a)
{
printf("%d",a[a[]]);
for(int i=a[]-;i;i--)printf("%08d",a[i]);puts("");
}
int main()
{
scanf("%d",&n);
if(n<=){puts("");return ;}
a[][]=;a[][]=;a[][]=;a[][]=;
if(n<=){printf("%d\n",a[n][]);return ;}
for(int i=;i<=n;i++)
{
mul(a[i-],a[i],);
dec(a[i],a[i-]);add(a[i],);
}
print(a[n]);return ;
}
bzoj 1002 [FJOI2007]轮状病毒——打表找规律的更多相关文章
- [FJOI2007]轮状病毒 题解(dp(找规律)+高精度)
[FJOI2007]轮状病毒 题解(dp(找规律)+高精度) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1335733 没什么好说的,直接把规律找出来,有 ...
- 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 轮状病毒 递推+高精度
题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring& ...
- 【刷题】BZOJ 1002 [FJOI2007]轮状病毒
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...
- 【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 ...
随机推荐
- bzoj1999 / P1099 树网的核
P1099 树网的核 (bzoj数据加强) 前置知识:树的直径 (并不想贴我的智障写法虽然快1倍但内存占用极大甚至在bzoj上MLE) 正常写法之一:用常规方法找到树的直径,在直径上用尺取法找一遍,再 ...
- Sybase数据库常用sql语言
Sybase数据库常用sql语言 1,表备份: --table_name1:需要备份的表; table_name2:备份后的表 SELECT * into table_name2 from table ...
- 转载:使用 OpenCV 识别 QRCode
原文链接:http://coolshell.cn/articles/10590.html#jtss-tsina 识别二维码的项目数不胜数,每次都是开箱即用,方便得很. 这次想用 OpenCV 从零识别 ...
- #ZLYD团队第二周项目总结
ZLYD团队第二周项目总结 项目进展 确定项目内容.目标.实现计划 首先确定游戏界面的游戏区域中墙的位置,绘制其图形,并通过其中的方法,返回墙壁的位置等属性. 根据豆子的位置,绘制其图形. 初始化吃豆 ...
- supervisor安装与问题
[转]安装supervisor以及可能碰到的问题 单击此处查看原文 supervisor作为一个进程管理的python软件非常的给力 但是一不小心就会遇到一些问题 就比如下面这个: unix:///v ...
- 如何在 OSX 中使用多个JDK版本
升级macbook小白的硬盘成SSD后,重新安装了系统和JDK8,但是启动eclipse还是报告需要安装JDK6,于是也按照提示安装了Apple JDK6,这导致系统中有两个JDK,一个是Oracle ...
- python2.7和python3.6共存,使用pip安装第三方库
因为一般情况下,window命令行运行pip,默认的情况是运行python3.6的pip,安装第三方库的路径也是python3.6,安装路径是: 如何运行在2.7环境下安装PIP呢?有网上的教程说需要 ...
- mysql之innodb的锁分类介绍
一.innodb行锁分类 record lock:记录锁,也就是仅仅锁着单独的一行 gap lock:区间锁,仅仅锁住一个区间(注意这里的区间都是开区间,也就是不包括边界值. next-key loc ...
- VNC Viewer连接Cent OS 时的 复制粘帖 功能
虽然 VNC Viewer 比起 vsphere Client 来, 感觉性能差一点. 但毕竟也是个选择. 找了一下 它的这个 功能. 运行一下 vncconfig & 就可以了. 实测好用. ...
- Android之Fresco(facebook的强大Android图片加载的框架)
Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络.本地存储和本地资源中加载图片.其中的Drawees可以显示占位符,直到图片加载完成.而当图片从屏幕 ...