{题解}[jzoj3885]【长郡NOIP2014模拟10.22】搞笑的代码
2017-01-19 17:52
232 查看
传送门
出题人已经把方程给了 我们尝试写出来
设f(i)为生成i排列的期望次数
f(i)=[(f(i−1)+1)∗n−in]+[(f(i)+1)∗in]
随便化简一下
我们发现f[i]=f(i−1)+nn−i
这样的时间是O(n)的
涨姿势 欧拉常数+ln(i)约等于原式中的调和级数
因为精度不卡
所以说…
Analysis
其实吧 出题人已经够友善啦出题人已经把方程给了 我们尝试写出来
设f(i)为生成i排列的期望次数
f(i)=[(f(i−1)+1)∗n−in]+[(f(i)+1)∗in]
随便化简一下
我们发现f[i]=f(i−1)+nn−i
这样的时间是O(n)的
涨姿势 欧拉常数+ln(i)约等于原式中的调和级数
因为精度不卡
所以说…
Code
#include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define oo 2139062143 using namespace std; const double Eule = 0.57721566490153286060651209; double ans; long long n; int main() { scanf("%lld", &n); ans = 0; if (n <= 10000000) { for (long long i = 1;i <= n;i ++) ans += (double)1 / (double)(i); } else ans = log((double)n) + Eule; printf("%.0lf", ans * n); }
相关文章推荐
- JZOJ 3885. 【长郡NOIP2014模拟10.22】搞笑的代码
- 【JZOJ3885】【长郡NOIP2014模拟10.22】搞笑的代码
- 【长郡NOIP2014模拟10.22】搞笑的代码
- JZOJ3885. 【长郡NOIP2014模拟10.22】搞笑的代码
- 【长郡NOIP2014模拟10.22】搞笑的代码
- 搞笑的代码【长郡NOIP2014模拟10.22】
- JZOJ 3887. 【长郡NOIP2014模拟10.22】字符串查询
- 【JZOJ3886】【长郡NOIP2014模拟10.22】道路维护
- 【JZOJ3887】【长郡NOIP2014模拟10.22】字符串查询
- JZOJ 3886. 【长郡NOIP2014模拟10.22】道路维护
- 【GDOI2014模拟】Tree 题解+代码
- 【JZOJ3885】搞笑的代码
- {题解}[jzoj3806]【NOIP2014模拟8.24】小X 的道路修建
- 【GDOI2014模拟】雨天的尾巴 题解+代码
- 【JZOJ 3885】 搞笑的代码
- 【GDOI2014模拟】Pty爬山 题解+代码
- 【GDOI2014模拟】服务器 题解+代码
- 道路维护【长郡NOIP2014模拟10.22】
- jzoj 3885 搞笑的代码