题目: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]轮状病毒——打表找规律的更多相关文章

  1. [FJOI2007]轮状病毒 题解(dp(找规律)+高精度)

    [FJOI2007]轮状病毒 题解(dp(找规律)+高精度) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1335733 没什么好说的,直接把规律找出来,有 ...

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

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

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

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

  4. BZOJ 1002 [FJOI2007]轮状病毒

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

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

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

  6. BZOJ 1002 FJOI2007 轮状病毒 递推+高精度

    题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring& ...

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

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

  8. 【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度

    1002: [FJOI2007]轮状病毒 Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同 ...

  9. 1002: [FJOI2007]轮状病毒

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

随机推荐

  1. bzoj1999 / P1099 树网的核

    P1099 树网的核 (bzoj数据加强) 前置知识:树的直径 (并不想贴我的智障写法虽然快1倍但内存占用极大甚至在bzoj上MLE) 正常写法之一:用常规方法找到树的直径,在直径上用尺取法找一遍,再 ...

  2. Sybase数据库常用sql语言

    Sybase数据库常用sql语言 1,表备份: --table_name1:需要备份的表; table_name2:备份后的表 SELECT * into table_name2 from table ...

  3. 转载:使用 OpenCV 识别 QRCode

    原文链接:http://coolshell.cn/articles/10590.html#jtss-tsina 识别二维码的项目数不胜数,每次都是开箱即用,方便得很. 这次想用 OpenCV 从零识别 ...

  4. #ZLYD团队第二周项目总结

    ZLYD团队第二周项目总结 项目进展 确定项目内容.目标.实现计划 首先确定游戏界面的游戏区域中墙的位置,绘制其图形,并通过其中的方法,返回墙壁的位置等属性. 根据豆子的位置,绘制其图形. 初始化吃豆 ...

  5. supervisor安装与问题

    [转]安装supervisor以及可能碰到的问题 单击此处查看原文 supervisor作为一个进程管理的python软件非常的给力 但是一不小心就会遇到一些问题 就比如下面这个: unix:///v ...

  6. 如何在 OSX 中使用多个JDK版本

    升级macbook小白的硬盘成SSD后,重新安装了系统和JDK8,但是启动eclipse还是报告需要安装JDK6,于是也按照提示安装了Apple JDK6,这导致系统中有两个JDK,一个是Oracle ...

  7. python2.7和python3.6共存,使用pip安装第三方库

    因为一般情况下,window命令行运行pip,默认的情况是运行python3.6的pip,安装第三方库的路径也是python3.6,安装路径是: 如何运行在2.7环境下安装PIP呢?有网上的教程说需要 ...

  8. mysql之innodb的锁分类介绍

    一.innodb行锁分类 record lock:记录锁,也就是仅仅锁着单独的一行 gap lock:区间锁,仅仅锁住一个区间(注意这里的区间都是开区间,也就是不包括边界值. next-key loc ...

  9. VNC Viewer连接Cent OS 时的 复制粘帖 功能

    虽然 VNC Viewer 比起 vsphere Client 来, 感觉性能差一点. 但毕竟也是个选择. 找了一下 它的这个 功能. 运行一下 vncconfig & 就可以了. 实测好用. ...

  10. Android之Fresco(facebook的强大Android图片加载的框架)

    Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络.本地存储和本地资源中加载图片.其中的Drawees可以显示占位符,直到图片加载完成.而当图片从屏幕 ...