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 ...
随机推荐
- nginx配置文件参数详解
nginx配置文件主要分为4部分:main(全局设置) main部分设置的指令将影响其他所有设置server(主机设置)server部分的指令主要用于指定主机和端口upstream(负载均衡服务 ...
- c++标准库vector&list使用练习
/* vector顺序存储,随机访问快 list链表存储,插入删除快 deque占用内存多,兼具两者优点 注意: 1.vector严格顺序存储 2.list的迭代器只能做++或--运算,要一次移动多个 ...
- php+mysql 注入基本过程
当mysql版本>5.0时我们只需要访问information_schema库即可查询数据库的相关概要信息,而对于<5.0的版本则需要爆破,今天我们测试的环境是mysql 5.5.40,对 ...
- Java堆(heap)、栈(stack)和队列的区别
Java里面Stack有两种含义: 一:数据结构 Stack,即java.util.Stack import java.util.Stack; import java.util.Iterator; i ...
- UVa 11552 最小的块数(序列划分模型:状态设计)
https://vjudge.net/problem/UVA-11552 题意:输入一个正整数k和字符串S,字符串的长度保证为k的倍数.把S的字符按照从左到右的顺序每k个分成一组,每组之间可以任意重排 ...
- 使用javascript模拟常见数据结构(三)
六.字典和散列表 我们已经知道,集合表示一组互不相同的元素(不重复元素).在字典中,存储的是键值对,其中键值是用来查询特定的元素的.字典和集合是很相似的,集合采用[值,值]的方式存储,而字典则是以[键 ...
- 51nod 1040 最大公约数的和 欧拉函数
1040 最大公约数之和 题目来源: rihkddd 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 给出一个n,求1-n这n个数,同n的最大公约数 ...
- How to Restore “TrustedInstaller” as Default Owner of a File
type NT SERVICE\TrustedInstaller in "Enter the object name to select" text box http://www. ...
- C# winform实现右下角弹出窗口结果的方法
using System.Runtime.InteropServices; [DllImport("user32")] private static extern bool Ani ...
- BooStrap4文档摘录: 1. Layout
文档: https://getbootstrap.com/docs/4.1/layout/overview/ w3c的案例:很直观: https://www.w3schools.com/bootst ...