题意

$$g_m(n)=\begin{cases}
& g_m(i) = 0,     \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 \leq i \leq m\\
& g_m(i) = i-1 + \frac{1}{i}\sum _{j=1}^i(g_m(j) + g_m(i-j)), \ \  i > m\\
\end{cases}$$

现给出 $n$ 和 $m$,求 $g_m(n)$ 模 $1000000007$.

分析

当 $n>m$ 时,易知 $a_n = n-1 + \frac{2}{n} S_{n-1}$,

即 $S_n - S_{n-1} = n-1 + \frac{2}{n} S_{n-1}$,

变形得 $\frac{S_n}{(n+1)(n+2)} = \frac{n-1}{(n+1)(n+2)} + \frac{S_{n-1}}{n(n+1)}$.

令 $b_n = \frac{S_n}{(n+1)(n+2)}$,得 $b_n = \frac{n-1}{(n+1)(n+2)} + b_{n-1}$,

变形 $b_n - b_{n-1} = \frac{3}{n+2} - \frac{2}{n+1} = 2(\frac{1}{n+2}-\frac{1}{n+1}) + \frac{1}{n+2}$,

根据裂项相消得 $b_n - b_m = 2(\frac{1}{n+2} - \frac{1}{m+2}) + \frac{1}{m+3} + \frac{1}{m+4}+...+\frac{1}{n+2}$,

即 $b_n = 2(\frac{1}{n+2} - \frac{1}{m+2}) + S(n+2)-S(m+2)$.

其中 $S(n)$ 表示前 $n$ 个倒数和,可以分段打表。

( $1e4$ 的表虽然不会超内存限制,但是会超代码长度限制www,最后改成2000

#include<bits/stdc++.h>
using namespace std; typedef long long ll;
const ll mod = ;
const int maxn = 1e9 + ;
const int siz = ; //
int f[maxn/siz+] = {{,,,,,,,...} //省略了
ll n, m; ll qpow(ll a, ll b, ll p)
{
ll ret = ;
while(b)
{
if(b&) ret = ret * a % p;
a = a * a % p;
b >>= ;
}
return ret;
} ll inv(ll n)
{
return qpow(n, mod-, mod);
} ll S(ll n)
{
int k = n / siz; //printf("%d\n", k);
ll tmp = f[k];
for(int i = k*siz+;i <= n;i++) tmp = (tmp + inv(i)) % mod;
return tmp;
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
scanf("%lld%lld", &n, &m);
ll bn = (*(inv(n+) - inv(m+)) + S(n+) - S(m+)) % mod;
ll bn_1 = (*(inv(n+) - inv(m+)) + S(n+) - S(m+)) % mod;
ll sn = (n+) * (n+) % mod * bn % mod;
ll sn_1 = n * (n+) % mod * bn_1 % mod;
printf("%lld\n", (sn - sn_1 + *mod) % mod);
}
}

参考链接:https://blog.csdn.net/baiyifeifei/article/details/99892190

2019HDU多校第九场 Rikka with Quicksort —— 数学推导&&分段打表的更多相关文章

  1. 2018多校第九场1010 (HDU6424) 数学

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6424 解法:找规律.因为最多三项,a1^a2^a3可以拆成(a1+2)+(a2+1)*a3,然后建成数 ...

  2. 218多校第九场 HDU 6424 (数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6424 题意:定义f(A) = log log log log …. (A个log) n ,g[A,B, ...

  3. 2019HDU多校第一场1001 BLANK (DP)(HDU6578)

    2019HDU多校第一场1001 BLANK (DP) 题意:构造一个长度为n(n<=10)的序列,其中的值域为{0,1,2,3}存在m个限制条件,表示为 l r x意义为[L,R]区间里最多能 ...

  4. 【杂题总汇】HDU2018多校赛第九场 Rikka with Nash Equilibrium

    [HDU2018多校赛第九场]Rikka with Nash Equilibrium 又是靠这样一道题擦边恰好和第两百名分数一样~愉快

  5. 2018 Multi-University Training Contest 9 杭电多校第九场 (有坑待补)

    咕咕咕了太久  多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场…… 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组 ...

  6. 2019年牛客多校第一场B题Integration 数学

    2019年牛客多校第一场B题 Integration 题意 给出一个公式,求值 思路 明显的化简公式题,公式是分母连乘形式,这个时候要想到拆分,那如何拆分母呢,自然是裂项,此时有很多项裂项,我们不妨从 ...

  7. 杭电多校第九场 hdu6425 Rikka with Badminton 组合数学 思维

    Rikka with Badminton Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/O ...

  8. Rikka with Game[技巧]----2019 杭电多校第九场:1005

      Rikka with Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Othe ...

  9. 杭电多校第九场 hdu6424 Rikka with Time Complexity 数学

    Rikka with Time Complexity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K ( ...

随机推荐

  1. CodeForces-166B-Polygons

    B. Polygons time limit per test:2 seconds memory limit per test:256 megabytes input:standard input o ...

  2. 剑指offer66:机器人的运动范围

    1 题目描述 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. 例如,当k为18时,机器 ...

  3. 关于JavaScript 基础总结

    Dom:document object model 即文档对象模型 Bom: browser object model 即浏览器对象模型 文档对象模型即与文本密切相关,比如document.query ...

  4. EXCEL 快捷键大全

    1.ctrl+tab :快速切换已打开的excel/ppt/word同样适用 2.shift+右上角的× :关闭所有excel/ppt/word 3.ctrl+d:快速复制非文本目标,对于文本是删除 ...

  5. libhura的建立

    libharu 是一个开源的导出pdf的库,在编译libharu需要用到zlib库和libpng库(libpng 依赖于zlib库).如果项目中不需要导出带有图片的pdf,可以将涉及到"pn ...

  6. 更新到PS CC 2019 缩放的时候 按住shift变成不规则缩放了 反而不按住shift是等比例缩放

    更新到PS CC 2019 缩放的时候 按住shift变成不规则缩放了 反而不按住shift是等比例缩放 更新到PS CC 2019 缩放的时候 按住shift变成不规则缩放了 反而不按住shift是 ...

  7. K380键盘IOS使用

  8. VMware Workstation Pro 15 序列号

    VMware Workstation Pro 15 序列号: GA70H-8TYE2-H886P-04YZC-YVA84 YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8 UG5J2-0ME ...

  9. App客户端性能测试点总结

    一.内存 测试范围1. 空闲状态下的应用内存消耗情况2. 中等规格状态下的应用内存消耗情况3. 满规格状态下的应用内存消耗情况4. 应用内存峰值情况5. 应用内存泄露情况6. 应用是否常驻内存7. 压 ...

  10. VC 中的ATL ActiveX 和 MFC ActiveX 有什么区别

    原文转自 https://www.cnblogs.com/zhwl/archive/2012/11/29/2794509.html ATL是ActiveXTemplateLibrary的缩写,它是一套 ...