题目描述:

分析:

我也不知道我在干sm,但就是没写出来2333

枚举 i 的每个质因子 j ,复杂度为n^(3/2)

为什么我会认为是n^2啊2333

然后考虑 f ( j )对g ( i )做了多少贡献

这个值当然与x=i / j有关

对每个x的质因子分开考虑

那么设某个因子P的指数为A

那么对于中途sigma的某一位的值Ik,他们的因子P的指数为Ak

那么为了满足整除性,我们知道Ak是单调不上升的

那么就可以用组合数算了。。。

构造长度为K的不超过Ak的不下降序列的方案数相当于将Ak个有标号小球放入K个编了号的箱子中,箱子可空

差分一下就看出来了2333

那么方案数就为C(K+Ak-1,Ak)

对于x的总方案,就是所有质因子方案数相乘,我们设为W(x)

所以g ( i ) = sigma( j | i ) f ( j ) * W ( i / j )

其中W是可以O( n^(3/2) )预处理的

所以总复杂度为O( n^(3/2) )

此外题解说有一个神仙卷积法,考场上想过但是为什么不继续想啊

太菜了,复习复习。。。

( f * g )(n) = sigma ( j | i ) f ( j ) *g ( i / j )

我***考试中这式子都写在纸上了怎么还不会啊2333好菜啊2333

答案就是( f * I ) (n) ^ k,其中函数I中所有值都为1

快速卷卷起来不就好啦。。。

/*龙门粗口*/

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector> #define maxn 200005
#define INF 0x3f3f3f3f
#define MOD 1000000007 using namespace std; inline int getint()
{
int num=,flag=;char c;
while((c=getchar())<''||c>'')if(c=='-')flag=-;
while(c>=''&&c<='')num=num*+c-,c=getchar();
return num*flag;
} int n,K;
long long f[maxn];
long long g[maxn];
int pri[maxn],cnt,np[maxn];
long long fac[maxn],inv[maxn];
long long W[maxn]; inline long long C(int p,int q)
{return fac[p]*inv[q]%MOD*inv[p-q]%MOD;} inline void init()
{
for(int i=;i<maxn/;i++)
{
if(!np[i])pri[++cnt]=i;
for(int j=;j<=cnt&&i*pri[j]<maxn/;j++)
{
np[i*pri[j]]=;
if(i%pri[j]==)break;
}
}
fac[]=fac[]=inv[]=inv[]=;
for(int i=;i<maxn;i++)fac[i]=fac[i-]*i%MOD;
for(int i=;i<maxn;i++)inv[i]=inv[MOD%i]*(MOD-MOD/i)%MOD;
for(int i=;i<maxn;i++)inv[i]=inv[i]*inv[i-]%MOD;
} int main()
{
int T=getint();
init();
while(T--)
{
memset(g,,sizeof g);
n=getint(),K=getint();
for(int i=;i<=n;i++)
{
int tmp=i;W[i]=;
for(int j=;j<=cnt&&pri[j]<=tmp;j++)
if(tmp%pri[j]==)
{
int cur=;
while(tmp%pri[j]==)tmp/=pri[j],cur++;
(W[i]*=C(K+cur-,cur))%=MOD;
}
if(tmp>)(W[i]*=K)%=MOD;
}
for(int i=;i<=n;i++)f[i]=getint();
for(int i=;i<=n;i++)for(int j=;j*j<=i;j++)
if(i%j==)
{
(g[i]+=f[j]*W[i/j])%=MOD;
if(j*j!=i)(g[i]+=f[i/j]*W[j])%=MOD;
}
for(int i=;i<=n;i++)printf("%lld%c",g[i],i==n?'\n':' ');
}
}

20191217HNOI 模拟赛 复活石的更多相关文章

  1. FJoi2017 1月20日模拟赛 恐狼后卫(口糊动规)

    Problem 1 恐狼后卫(wolf.cpp/c/pas) [题目描述] 著名卡牌游戏<石炉传说>中有一张随从牌:恐狼后卫.恐狼后卫的能力是使得相邻随从的攻击力提高. 现在有n张恐狼后卫 ...

  2. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  3. 冲刺$\mathfrak{CSP-S}$集训模拟赛总结

    开坑.手懒并不想继续一场考试一篇文. 既没必要也没时间侧边栏的最新随笔题解反思相间也丑 而且最近越来越懒了竟然都不写题解了……开坑也是为了督促自己写题解. 并不想长篇大论.简要题解也得写啊QAQ. 目 ...

  4. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  5. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  6. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  7. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  8. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  9. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

随机推荐

  1. React Mobile 搭建记录

    __dirname 总是指向被执行 js 文件的绝对路径,./ 会返回你执行 node 命令的路径,例如你的工作路径. path.join()方法可以连接任意多个路径字符串.要连接的多个路径可做为参数 ...

  2. opacity兼容性以及存在问题处理

    opacity兼容性以及存在问题处理 opacity兼容性 opacity属性是CSS3的属性,用于设置元素的不透明级别.语法: opacity: value | inherit; ①值value表示 ...

  3. codeforces 1185G1 状压dp

    codeforces 1185G1. Playlist for Polycarp (easy version)(动态规划) 传送门:https://codeforces.com/contest/118 ...

  4. 【Jenkins】pipeline-hello-world项目

    1.New Item 2.Pipeline Definition 3.Build Error 4.Solution 5.Console Output

  5. Strongly Connected Tournament

    题解: 有一个很重要的性质就是 对于一张完全强联通图来说 一定有一个强联通分量入度为0(或者出度为0) 然后就一些计数题的基本套路 https://www.cnblogs.com/onioncyc/p ...

  6. Github安装和使用(超级详细)

    Github (原创:黑小子-余) 小编我是一名Git新手,然后花三天时间通过查找网上资料,了解Git的简单使用.本次我就实战操作git安装.github仓库创建.上传代码到github上.从gith ...

  7. 0008 CSS初识(行内式、内部样式表、外部样式表)

    typora-copy-images-to: media 第01阶段.前端基础.CSS初识 CSS层叠样式表 学习目标 理解 css的目的作用 css的三种引入方式 应用 css三种引用方式的书写 通 ...

  8. Ceph 之RGW Pub-Sub Module

    Overview Pub-Sub module 顾名思义是一个发布订阅相关的模块.Pub-Sub module 为对象存储的变更事件提供一种发布-订阅机制.而发布-订阅架构本身应用非常广泛,如公有云G ...

  9. 【Python系统学习02】数据类型与类型转换

    一.数据类型 字符串 整数 浮点数 [补充中...] 1.字符串 str 字符串:英文string,简写str. name = '小石头:' print(name,'2019', '12', '24' ...

  10. [梁山好汉说IT] 如何理解一致性Hash

    [梁山好汉说IT] 如何理解一致性Hash 0x00 摘要 用梁山酒店分配客人为例来理解一致性Hash. 0x01. 与经典哈希方法的对比 经典哈希方法:总是假设内存位置的数量是已知且固定不变的.因为 ...