吉首大学2019年程序设计竞赛(重现赛)D - 数列求和(嘤雄难度)
链接:https://ac.nowcoder.com/acm/contest/992/D
$a_{i}=\dfrac {3a_{i-1}-a_{i-2}}{2}+i+1$
移项再化一下
$a_{i}-a_{i-1}-2i=\dfrac {1}{2}\left[ a_{i-1}-a_{i-2}-2\left( i-1\right) \right]$
令$t_{i}=t_{i}=a_{i}-a_{i-1}-2i$
由于$a_{0}=0$ $a_{1}=2$ 所以$t_{1}=0$
所以$t_{i}=0$ $(i\geq 1)$
即$a_{i}=a_{i-1}+2i$
$\left\{\begin{matrix}
& a_{i}=a_{i-1}+2i& \\
& \cdots & \\
& a_{1}=a_{0}+2\times 1 &
\end{matrix}\right.$
$i$个式子相加得到
$S_{i}=S_{i-1}+i\left( i+1\right)$
所以$a_{i}=i^{2} + i$
也可以打表,但我感觉打表会不会更难看出来?
现在可以先把1~$n$的总和先求出来,再减去与$m$不互质的和就是答案了。
预处理出$m$的素因子,然后枚举一下所有组合的情况(由于$m$随机生成,素因子个数不会很多)
每一个素因子乘积的组合$k$有$\lfloor \dfrac {n}{k}\rfloor$个
然后容斥一下
$S_{n}=\dfrac {n\cdot \left( n+1\right) \left( 2n+1\right) }{6}$
$k^{2}+\left( 2k\right) ^{2}+\ldots +\left( \lfloor \dfrac {n}{k}\rfloor k\right) ^{2}$
把$k^{2}$提出来就又是一个平方和了
1~$i$的和同理
#include <bits/stdc++.h>
#define ll long long
using namespace std; const ll MOD = 1E9 + ;
const ll inv2 = ;
const ll inv6 = ; ll n, m;
ll fac[]; inline ll sqr(ll x) {
return (x % MOD * (x + ) % MOD * ( * x + ) % MOD * inv6) % MOD;
} inline ll f(ll x) {
return ((x + ) * x % MOD * inv2 % MOD) % MOD;
} inline ll cal(ll temp) {
ll k = n / temp;
return (sqr(k) * temp % MOD * temp % MOD + f(k) * temp % MOD) % MOD;
} int main() {
while (~scanf("%lld%lld", &n, &m)) {
int cnt = ;
for (int i = ; i * i <= m; i++) {
if (m % i == ) {
fac[cnt++] = i;
while (m % i == ) m /= i;
}
}
if (m != ) fac[cnt++] = m;
ll ans = cal();
ll ans0 = ;
for (int i = ; i < ( << cnt); i++) {
ll temp = ;
int sum = ;
for (int j = ; j < cnt; j++) {
if (i & ( << j)) {
sum++;
temp *= fac[j];
}
}
if (sum & ) {
ans0 = (ans0 + cal(temp)) % MOD;
} else {
ans0 = (ans0 - cal(temp) + MOD) % MOD;
}
}
ans = (ans - ans0 + MOD) % MOD;
printf("%lld\n", ans);
}
return ;
}
吉首大学2019年程序设计竞赛(重现赛)D - 数列求和(嘤雄难度)的更多相关文章
- 吉首大学2019年程序设计竞赛(重现赛)- A SARS病毒 (矩阵,欧拉降幂)
题目链接:https://ac.nowcoder.com/acm/contest/992/A 题意:求出长度为n的字符串个数,字符串由A.C.G.T组成,其中A和C必须成对出现. 思路:我们规定: ...
- 吉首大学2019年程序设计竞赛(重现赛)-K(线段树)
题目链接:https://ac.nowcoder.com/acm/contest/992/K 题意:给一个大小为1e5的数组,由0 1组成,有两种操作,包括区间修改,将一段区间内的0换成1,1换成0; ...
- 吉首大学2019年程序设计竞赛(重现赛)-J(树形DP)
题目链接:https://ac.nowcoder.com/acm/contest/992/J 题意:题意很清晰,就是求任意两点距离的和,结果对1e9+7取模. 思路:裸的树形DP题,一条边的贡献值=这 ...
- 吉首大学2019年程序设计竞赛(重现赛)I 滑稽树上滑稽果 (莫队+逆元打表)
链接:https://ac.nowcoder.com/acm/contest/992/I来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K ...
- 吉首大学2019年程序设计竞赛(重现赛) J 滑稽树下你和我 (递归)
链接:https://ac.nowcoder.com/acm/contest/992/J来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K ...
- 吉首大学2019年程序设计竞赛(重现赛) B 干物妹小埋
链接:https://ac.nowcoder.com/acm/contest/992/B来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K ...
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 G - 彩虹岛套娃
题目描述 俄罗斯套娃是俄罗斯特产的木制玩具,一般由多个一样图案的空心木娃娃一个套一个组成,最多可达十多个,通常为圆柱形,底部平坦可以直立.颜色有红色,蓝色,绿色,紫色等.最普通的图案是一个穿着俄罗斯民 ...
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 H - 圣诞节糖果
题目描述 圣诞节临近,彩虹岛的黑心商人
- 长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 F - 打铁的箱子
题目描述 作为彩虹岛上最擅长打铁的人,
随机推荐
- SQL Server 2000~2017补丁包
最新更新 Product Version Latest Service Pack Latest GDR Update Latest Cumulative Update CU Release Date ...
- Feign 自定义编码器、解码器和客户端,Feign 转发请求头(header参数)、Feign输出Info级别日志
Feign 的编码器.解码器和客户端都是支持自定义扩展,可以对请求以及结果和发起请求的过程进行自定义实现,Feign 默认支持 JSON 格式的编码器和解码器,如果希望支持其他的或者自定义格式就需要编 ...
- c,使用lib,dll
lib使用: #include "xxx.h" // lib的头文件 #pragma comment(lib, "xxx.lib") 这样会将lib里的数据编译 ...
- vue3 createComponent
这个函数不是必须的,除非你想要完美结合 TypeScript 提供的类型推断来进行项目的开发. 这个函数仅仅提供了类型推断,方便在结合 TypeScript 书写代码时,能为 setup() 中的 p ...
- C#录制屏幕采集系统桌面画面
在项目中,有很多需要录制屏幕的场景,比如直播课,录制教学视频等场景.但.NET自带的Screen类功能比较弱,效率很低.那么如何简单快捷地高效采集桌面屏幕呢?当然是采用SharpCapture!下面开 ...
- 1014 福尔摩斯的约会(C#)
一.题目内容: 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就 ...
- Docker/Dockerfile debug调试技巧
『重用』容器名 但我们在编写/调试Dockerfile的时候我们经常会重复之前的command,比如这种docker run --name jstorm-zookeeper zookeeper:3.4 ...
- MongoDB和Java(1):Linux下的MongoDB安装
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- Vue学习之npm常用命令及参数小结(十四)
NPM几个常用命令和参数的意思: npm install packagename 安装模块如不指定版本号 默认会安装最新的版本 npm install packagename 0.0.1 安装指定版本 ...
- react性能优化要点
1.减少render方法的调用 1.1继承React.PureComponent(会自动在内部使用shouldComponentUpdate方法对state或props进行浅比较.)或在继承自Reac ...