题目传送门

题目大意

给出 \(M,k\) ,求出

\[\sum_{x|M}\sigma(x)^k
\]

给出 \(P_i\),满足 \(n=\prod_{i=1}^{n}a_i^{P_i}\),其中 \(a_i\) 是第 \(i\) 个质数。

对于 \(45\%\) 的数据点满足 \(k\le 10^5\),对于其余数据点满足 \(k\le 12\) 。

思路

首先你发现答案就是:

\[\prod_{i=1}^{n}(\sum_{j=1}^{P_i+1}j^k)
\]

(因为约数个数是个积性函数)

然后你发现对于 \(45\%\) 的数据点可以直接暴力,然后另外一部分可以直接拉格朗日插值法解决。

\(\texttt{Code}\)

#include <bits/stdc++.h>
using namespace std; #define Int register int
#define mod 1000000007
#define int long long
#define MAXN 100005 int n,k,P,pre[MAXN]; int qkpow (int a,int b){
int res = 1;for (;b;b >>= 1,a = a * a % mod) if (b & 1) res = res * a % mod;
return res;
}
int inv (int x){return qkpow (x,mod - 2);} template <typename T> inline void read (T &t){t = 0;char c = getchar();int f = 1;while (c < '0' || c > '9'){if (c == '-') f = -f;c = getchar();}while (c >= '0' && c <= '9'){t = (t << 3) + (t << 1) + c - '0';c = getchar();} t *= f;}
template <typename T,typename ... Args> inline void read (T &t,Args&... args){read (t);read (args...);}
template <typename T> inline void write (T x){if (x < 0){x = -x;putchar ('-');}if (x > 9) write (x / 10);putchar (x % 10 + '0');} int Sum (int x){//计算\sum_{i=1}^{x}i^k
if (x <= k + 1) return pre[x];
int ans = 0;
for (Int i = 0;i <= k + 1;++ i){
int mot = 1,son = 1;
for (Int j = 0;j <= k + 1;++ j)
if (i != j) mot = mot * (i + mod - j) % mod,son = son * (x + mod - j) % mod;
ans = (ans + pre[i] * son % mod * inv (mot) % mod) % mod;
ans = (ans % mod + mod) % mod;
}
return ans;
} signed main(){
read (n,k),k %= (mod - 1);
if (k <= 12){//使用拉格朗日插值
pre[0] = qkpow (0,k);
for (Int i = 1;i <= k + 1;++ i) pre[i] = (pre[i - 1] + qkpow (i,k)) % mod;
int res = 1;for (Int i = 1;i <= n;++ i) read (P),P %= mod,res = res * Sum (P + 1) % mod;
write (res),putchar ('\n');
return 0;
}
int ans = 1;
pre[0] = qkpow (0,k);for (Int i = 1;i <= MAXN - 4;++ i) pre[i] = (pre[i - 1] + qkpow (i,k)) % mod;
for (Int i = 1;i <= n;++ i) read (P),P %= mod,ans = 1ll * ans * pre[P + 1] % mod;
write (ans),putchar ('\n');
return 0;
}

题解 「BZOJ2137」submultiple的更多相关文章

  1. 题解 「HDU6403」卡片游戏

    link Description 桌面上摊开着一些卡牌,这是她平时很爱玩的一个游戏.如今卡牌还在,她却不在我身边.不知不觉,我翻开了卡牌,回忆起了当时一起玩卡牌的那段时间. 每张卡牌的正面与反面都各有 ...

  2. 题解 「SCOI2016」萌萌哒

    link Description 一个长度为 $ n $ 的大数,用 $ S_1S_2S_3 \ldots S_n $表示,其中 $ S_i $ 表示数的第 $ i $ 位,$ S_1 $ 是数的最高 ...

  3. 题解 「SDOI2017」硬币游戏

    题目传送门 Description 周末同学们非常无聊,有人提议,咱们扔硬币玩吧,谁扔的硬币正面次数多谁胜利. 大家纷纷觉得这个游戏非常符合同学们的特色,但只是扔硬币实在是太单调了. 同学们觉得要加强 ...

  4. 题解 「ZJOI2018」历史

    题目传送门 Description 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有 \(n\) 个城市,这 \(n\) 个城市被恰 ...

  5. 题解 「BZOJ3636」教义问答手册

    题目传送门 Description 作为泉岭精神的缔造者.信奉者.捍卫者.传承者,Pear决定印制一些教义问答手册,以满足泉岭精神日益增多的信徒.Pear收集了一些有关的诗选.语录,其中部分内容摘录在 ...

  6. 题解「BZOJ4310」跳蚤

    题目传送门 Description 现在有一个长度为 \(n\) 的字符串,将其划分为 \(k\) 段,使得这 \(k\) 段每一段的字典序最大子串中字典序最大的字符串字典序尽量小.求出这个字符串. ...

  7. 题解 「BZOJ2178」圆的面积并

    题目传送门 题目大意 给出 \(n\) 个圆,求它们并的面积大小. \(n\le 10^3\) 思路 如果您不会自适应辛普森法,请戳这里学习 其实我们发现,如果我们设 \(f(x)\) 表示 \(x= ...

  8. 题解 - 「MLOI」小兔叽

    小兔叽 \(\texttt{Link}\) 简单题意 有 \(n\) 个小木桩排成一行,第 \(i\) 个小木桩的高度为 \(h_i\),分数为 \(c_i\). 如果一只小兔叽在第 \(i\) 个小 ...

  9. 「ZJOI2019」&「十二省联考 2019」题解索引

    「ZJOI2019」&「十二省联考 2019」题解索引 「ZJOI2019」 「ZJOI2019」线段树 「ZJOI2019」Minimax 搜索 「十二省联考 2019」 「十二省联考 20 ...

随机推荐

  1. Dynamics CRM实体系列之1:N、N:1以及N:N关系

    Dynamics CRM在实施过程中会遇到很多多个实体关联的问题,这样可以实现多个实体的记录通过关联的字段实现数据的综合展示,在Sql Server里面叫做外键,在Dynamics CRM叫做关系.D ...

  2. mybaits源码分析--自定义插件(七)

    一.MyBatis插件 插件是一种常见的扩展方式,大多数开源框架也都支持用户通过添加自定义插件的方式来扩展或者改变原有的功能,MyBatis中也提供的有插件,虽然叫插件,但是实际上是通过拦截器(Int ...

  3. MySQL数据库迁移之data目录

    其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库, 但是这次数据文件过大,大约有40个G,使用命令行导入,效果不是很好,经常在执行过程中报错.卡死 ...

  4. SpringBoot2.x+mybatis plus3.x集成Activit7版本

    最近在写一个开源项目ruoyi-vue-pro,暂时负责Activiti7工作流的搭建,接这个任务一个原因,是比较好奇Activiti7版本与先前的5.6版本究竟有什么区别,因为先前在工作当中,最开始 ...

  5. JS_DOM操作之绑定事件

    1 - 静态绑定:直接把事件写在标签元素中 <div id="div" onclick="foo(this)">click</div> ...

  6. Appium自动化(6) - 控件定位工具之uiautomatorviewer 的详细介绍

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 app定位不如web定位那么 ...

  7. git config 选项

    git config  --global -- global 写入选项:写入全局的 ~/.gitconfig 文件而不是版本库的 .git/config,如果 ~/.gitconfig 文件不存在,则 ...

  8. 利用nginx 来实现内网yum源(反向代理)

    简介 在项目部署时,尤其是在政府企业,对于外网简直是奢望,但是对于运维来说,没有外网的话只能自建yum源.我今天来说的是一种简单的自建yum源方法,前提是必须有一台内外网都有的机器,我们一般称为前置机 ...

  9. linux性能瓶颈排查--内存+cpu+网络+磁盘+应用瓶颈

    概述 作为运维人员,肯定遇到过以下场景,应用突然卡住了,或者异常退出,cpu占用过高等各种异常情况,一般遇到这些异常情况,该如何去查找具体原因呢? linux和jdk提供了一些命令和工具来查看内存.c ...

  10. 升级到windows10之后的骚操作,安装debian,centos7,支持linux、docker、kubectl命令

    修改Windows10默认字体和图标很大 打开Hyper-V Windows10下载Docker Desktop https://www.docker.com/products/docker-desk ...