[洛谷P5147]随机数生成器
题目大意:
$$
f_n=
\begin{cases}
\frac{\sum\limits_{i=1}^nf_i}n+1&(n>1)\\
0&(n=1)
\end{cases}
$$
求$f_n(n<2^{31})$
题解:考虑$n>2$时的情况。
$$
f_n=\dfrac{\sum\limits_{i=1}^nf_i}n+1\\
nf_n=\sum\limits_{i=1}^{n-1}f_i+f_n+n\\
\begin{align}
(n-1)f_n=\sum\limits_{i=1}^{n-1}f_i+n\\
(n-2)f_{n-1}=\sum\limits_{i=1}^{n-2}f_i+n-1\\
\end{align}\\
(1)-(2),得:\\
(n-1)f_n-(n-2)f_{n-1}=\sum\limits_{i=1}^{n-1}f_i+n-(\sum\limits_{i=1}^{n-2}f_i+n-1)\\
(n-1)(f_n-f_{n-1})=1\\
f_n-f_{n-1}=\dfrac1{n-1}
$$
特别的,当$n=2$时,$f_{n-1}$无法用原来的公式来计算,所以$f_n-f_{n-1}$要特别计算,为$2$
当$n>1$时
$$
\begin{align*}
ans&=2+\sum\limits_{i=2}^{n-1}\dfrac1i\\
&=1+\sum\limits_{i=1}^{n-1}\dfrac1i
\end{align*}
$$
但是$n<2^{31}$,无法$O(n)$计算,但是右边的东西(调和级数$H(x)$)在$n$较大时有一个公式:$H_n=\ln(n)+\gamma$。($\gamma$的定义就是$\gamma=\lim\limits_{n\to\infty}H_n-\ln(n)$,$\gamma=0.57721566490153286060651209008240243104215933593992\dots$)
卡点:无
C++ Code:
#include <cstdio>
#include <cmath>
const int limit = 1000000;
const long double EulerGamma = 0.577215664901532860606512090082; int n;
long double ans = 1;
int main() {
scanf("%d", &n);
if (n == 1) {
puts("0.00000");
return 0;
}
if (n <= limit) for (int i = 1; i < n; ++i) ans += 1 / static_cast<long double> (i);
else ans += logl(n - 1) + EulerGamma;
printf("%.5Lf\n", ans);
return 0;
}
[洛谷P5147]随机数生成器的更多相关文章
- 洛谷P3600 随机数生成器(期望dp 组合数)
题意 题目链接 Sol 一条重要的性质:如果某个区间覆盖了另一个区间,那么该区间是没有用的(不会对最大值做出贡献) 首先不难想到枚举最终的答案\(x\).这时我们需要计算的是最大值恰好为\(x\)的概 ...
- 洛谷P3600随机数生成器——期望+DP
原题链接 写到一半发现写不下去了... 所以orz xyz32768,您去看这篇题解吧,思路很清晰,我之前写的胡言乱语与之差距不啻天渊 #include <algorithm> #incl ...
- 洛谷P3306 随机数生成器
题意:给你一个数列,a1 = x,ai = (A * ai-1 + B) % P,求第一个是t的是哪一项,或者永远不会有t. 解:循环节不会超过P.我们使用BSGS的思想,预处理从t开始跳√P步的,插 ...
- 洛谷 P3600 - 随机数生成器(期望 dp)
题面传送门 我竟然独立搞出了这道黑题!incredible! u1s1 这题是我做题时间跨度最大的题之一-- 首先讲下我四个月前想出来的 \(n^2\log n\) 的做法吧. 记 \(f(a)=\m ...
- 洛谷 [P4035] 球形空间生成器
高斯消元 注意浮点误差,判断一个浮点数是否为 0 的时候,看他的绝对值与 \(10^{-8}\)的关系 #include <iostream> #include <algorithm ...
- 【洛谷 P3306】[SDOI2013]随机数生成器 (BSGS)
题目链接 怎么这么多随机数生成器 题意见原题. 很容易想到\(BSGS\)算法,但是递推式是\(X_{i+1}=(aX_i+b)\mod p\),这显然不是一个等比数列. 但是可以用矩阵乘法来求出第\ ...
- 洛咕 P3306 [SDOI2013]随机数生成器
洛咕 P3306 [SDOI2013]随机数生成器 大力推式子??? \(X_{i}=\underbrace{a(a(\cdots(a(a}_{i-1个a}X_1+b)))\cdots)\) \(=b ...
- 洛谷NOIp热身赛题解
洛谷NOIp热身赛题解 A 最大差值 简单树状数组,维护区间和.区间平方和,方差按照给的公式算就行了 #include<bits/stdc++.h> #define il inline # ...
- 【BZOJ3122】随机数生成器(BSGS,数论)
[BZOJ3122]随机数生成器(BSGS,数论) 题面 BZOJ 洛谷 题解 考虑一下递推式 发现一定可以写成一个 \(X_{i+1}=(X_1+c)*a^i-c\)的形式 直接暴力解一下 \(X_ ...
随机推荐
- BZOJ3174. [TJOI2013]拯救小矮人(dp)
题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=3174 题解 其实此题并不需要那么多YY的部分. 我们考虑若干个小矮人逃出的顺序.若跳出的 ...
- robotframework 脚本编写规范
测试集.脚本 测试脚本的名字不要超过20个字符,文件类型应该为txt 名字必需易读且有意义(看名知意) 记住测试集的名字是自动根据文件.目录的名字创建的.后缀名会被截去,下划线会转换为空格,如果名 ...
- Ztree结合jbox实现弹窗树结构
点击添加分类,弹出事项选择框为jbox <a href="#" id="down{{row.id}}" style="display:none& ...
- gopherjs
An example implementation of a GopherJS client and a Go server using the Improbable gRPC-Web impleme ...
- Github上的一些高分Qt开源项目【多图】
游戏2D地图编辑器: 著名的TileMap编辑器,做2D游戏开发的一定不会陌生. Go 语言的IDE: Go语言的集成开发环境. Clementine Music Player: 功能很完善且跨平台支 ...
- Your funds transfer has been delayed
Hello from Amazon. Your funds transfer in the amount of 9,422.88 USD has been delayed because the cr ...
- php序列化问题
序列化是将变量转换为可保存或传输的字符串的过程:反序列化就是在适当的时候把这个字符串再转化成原来的变量使用.这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性. 1. serialize和 ...
- 一个网页从输入URL到页面加载完的过程
过程概述 1.浏览器查找域名对应的IP地址 2.浏览器根据IP地址与服务器建立socket连接 3.浏览器与服务器通信:浏览器请求,服务器处理请求和响应 4.浏览器与服务器断开连接 具体过程 1.搜索 ...
- 第9次Scrum会议(10/21)【欢迎来怼】
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华小组照片 二.开会信息 时间:2017/10/21 17:20~17:45,总计25min.地点:东北师范 ...
- 第三次c++作业
https://github.com/egoistor/3Elevators-scheduling 老实说,因为这周时间紧张,(高数的期中考和一些奇奇怪怪的时期), 所以代码大体是有,但是很多细节处理 ...