[FJOI2007]轮状病毒 题解(dp(找规律)+高精度)
[FJOI2007]轮状病毒 题解(dp(找规律)+高精度)
标签:题解
阅读体验:https://zybuluo.com/Junlier/note/1335733
没什么好说的,直接把规律找出来,有两种规律(据说还有多种dp),再套个高精度
\(First\)
\(f[1]=1,f[2]=5,f[i]=3×f[i-1]-f[i-2]+2\)
就直接写个高精+低精和高精×低精和高精-高精就行了
\(Second\)
\(f[1]=1,f[2]=3,f[i]=f[i-1]+f[i-2]\)
\(i\)为奇数时,\(g[i]=f[i]^2\)
\(i\)为偶数时,\(g[i]=f[i]^2-2\)
这个需要高精+高精,高精×高精,高精-低精。。。
\(code\)
反正这就是个暴力题啦,只要找得到规律(我反正将近半个小时找到第二个规律,但是上网看题解写了第一种的)
#include<bits/stdc++.h>
#define il inline
#define rg register
#define ldb double
#define lst long long
#define rgt register int
#define N 150
using namespace std;
const int Inf=1e9;
il int MAX(rgt x,rgt y){return x>y?x:y;}
il int MIN(rgt x,rgt y){return x<y?x:y;}
il int read()
{
int s=0,m=0;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')m=1;ch=getchar();}
while( isdigit(ch))s=(s<<3)+(s<<1)+(ch^48),ch=getchar();
return m?-s:s;
}
int n;
struct PLUS
{
int S[150],len;
il void Print()
{
for(rgt i=len;i>=1;--i)
printf("%d",S[i]);puts("");
}
}dp[N],blank;
PLUS operator+(PLUS A,int x)
{
A.S[1]+=x;rgt nw=1;
while(A.S[nw]>=10)
++A.S[nw+1],A.S[nw]%=10,++nw;
if(A.S[A.len+1])++A.len;
return A;
}
PLUS operator*(PLUS A,int x)
{
rg PLUS mid=blank;
mid.len=A.len;
for(rgt i=1;i<=A.len;++i)
{
mid.S[i]+=A.S[i]*x;
mid.S[i+1]+=mid.S[i]/10;
mid.S[i]%=10;
}
while(mid.S[mid.len+1])
{
++mid.len;
mid.S[mid.len+1]+=mid.S[mid.len]/10;
mid.S[mid.len]%=10;
}return mid;
}
PLUS operator-(PLUS A,PLUS B)
{
for(rgt i=1;i<=A.len;++i)
{
A.S[i]-=B.S[i];
if(A.S[i]<0)
--A.S[i+1],A.S[i]+=10;
}return A;
}
int main()
{
n=read();
dp[1].S[1]=1,dp[1].len=1;
dp[2].S[1]=5,dp[2].len=1;
for(rgt i=3;i<=n;++i)
dp[i]=((dp[i-1]*3)-dp[i-2])+2;
dp[n].Print();
return 0;
}
[FJOI2007]轮状病毒 题解(dp(找规律)+高精度)的更多相关文章
- bzoj 1002 [FJOI2007]轮状病毒——打表找规律
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1002 看 Zinn 的博客:https://www.cnblogs.com/Zinn/p/9 ...
- bzoj1002 [FJOI2007]轮状病毒——找规律+高精度
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1002 打表找规律,似乎是这样:https://blog.csdn.net/fzhvampir ...
- hdu 2604 Queuing dp找规律 然后矩阵快速幂。坑!!
http://acm.hdu.edu.cn/showproblem.php?pid=2604 这题居然O(9 * L)的dp过不了,TLE, 更重要的是找出规律后,O(n)递推也过不了,TLE,一定 ...
- HDU 1028 Ignatius and the Princess III (母函数或者dp,找规律,)
Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- 【BZOJ】1002: [FJOI2007]轮状病毒(DP+规律+高精度)
http://www.lydsy.com/JudgeOnline/problem.php?id=1002 其实我还是看题解的,而且看了题解也没明白那公式怎么来的T_T,先水过了先把....以后研究一下 ...
- BZOJ 1002 FJOI 2007 轮状病毒 暴力+找规律+高精度
题目大意: 思路:基尔霍夫矩阵求生成树个数,不会. 可是能够暴力打表.(我才不会说我调试force调试了20分钟... CODE(force.cc): #include <cstdio> ...
- [bzoj1002][FJOI2007]轮状病毒_递推_高精度
轮状病毒 bzoj-1002 FJOI-2007 Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2 ...
- loj6172 Samjia和大树(树形DP+找规律)
题目: https://loj.ac/problem/6172 分析: 首先容易得出这样的dp式子 然后发现后面那个Σ其实是两段区间,可以用总和减去中间一段区间表示,所以只要维护个前缀和就ok了 这样 ...
- ZOJ-3929 Deque and Balls (DP+找规律)
题目大意:n个数,每个数的大小都在1~n之间.操作n次,第 i 次将第 i 个数放到一个双端队列里面,放到队列两端的概率是相等的.问操作n次之后双端队列中元素满足xi>xi+1的对数的期望,输出 ...
随机推荐
- spark数据倾斜与解决方法
一.数据倾斜 数据倾斜一般发生在对数据进行重新划分以及聚合的处理过程中.执行Spark作业时,数据倾斜一般发生在shuffle过程中,因为Spark的shuffle过程需要进行数据的重新划分处理.在执 ...
- 正则化方法L1 L2
转载:http://blog.csdn.net/u012162613/article/details/44261657(请移步原文) 正则化方法:防止过拟合,提高泛化能力 在训练数据不够多时,或者ov ...
- 【leetcode】Increasing Triplet Subsequence
Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...
- 6.LINUX32位和64位系统的区别和选择
- #381 Div2 Problem C Alyona and mex (思维 && 构造)
题意 : 题目的要求是构造出一个长度为 n 的数列, 构造条件是在接下来给出的 m 个子区间中, 要求每一个子区间的mex值最大, 然后在这 m 个子区间产生的mex值中取最小的输出, 并且输出构造出 ...
- luogu P1223 排队接水 x
P1223 排队接水 题目描述 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小. 输入输出格式 输入格式: 输入文件共两行, ...
- Selenium-webdriver+八种元素定位
进行Web页面自动化测试,对页面上的元素进行定位和操作是核心.而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础. 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素 ...
- NBU5240备份系统还原数据库--Linux版
利用NBU灾备系统数据库RMAN备份文件还原EHR数据库,将数据库还原到2017-7-10 10:00:00 linux centsos 6.6 原数据库版本 11.2.0.1 IP/hostnam ...
- 浏览器HTML5录音功能
一.浏览器HTML5录音功能 二.业务代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Cont ...
- ActiveMQ从入门到精通(二)
接上一篇<ActiveMQ从入门到精通(一)>,本篇主要讨论的话题是:消息的顺序消费.JMS Selectors.消息的同步/异步接受方式.Message.P2P/PubSub.持久化订阅 ...