题目描述:

分析:

我也不知道我在干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. dotnet 判断程序当前使用管理员运行降低权使用普通权限运行

    有一些程序是不想通过管理员权限运行的,因为在很多文件的读写,如果用了管理员权限程序写入的程序,其他普通权限的程序是无法直接访问的.本文告诉大家如何判断当前的程序是通过管理员权限运行,然后通过资源管理器 ...

  2. rabbitmq template发送的消息中,Date类型字段比当前时间晚了8小时

    前言 前一阵开发过程遇到的问题,用的rabbitmq template发送消息,消息body里的时间是比当前时间少了8小时的,这种一看就是时区问题了. 就说说为什么出现吧. 之前的配置是这样的: @B ...

  3. easypermissions拒绝权限后闪退。 java.lang.NoSuchMethodError: No virtual method isStateSaved()Z in class Landroid/support/v4/app/FragmentManager

    Process: com.tazan.cd.streetlight, PID: 18825 java.lang.NoSuchMethodError: No virtual method isState ...

  4. WCF 服务应用程序

    1. 创建 WCF 服务程序和客户端程序,参考如下: https://docs.microsoft.com/zh-cn/dotnet/framework/wcf/getting-started-tut ...

  5. Java 工程师应该掌握的知识

    以 Java 工程师应该掌握的知识为例,按重要程度排出六个梯度: 第一梯度:计算机组成原理.数据结构和算法.网络通信原理.操作系统原理. 第二梯度:Java 基础.JVM 内存模型和 GC 算法.JV ...

  6. 9. SOFAJRaft源码分析— Follower如何通过Snapshot快速追上Leader日志?

    前言 引入快照机制主要是为了解决两个问题: JRaft新节点加入后,如何快速追上最新的数据 Raft 节点出现故障重新启动后如何高效恢复到最新的数据 Snapshot 源码分析 生成 Raft 节点的 ...

  7. 简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用

    这是简易数据分析系列的第 15 篇文章. 年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进阶用法 ...

  8. 大数据hadoop集群部署(一)

     环境系统配置  JAVA虚拟机的安装

  9. C# event 事件-2

    本次是对第一篇事件随笔的补充笔记,涉及题目依然使用上一篇的习题.上一篇地址:https://www.cnblogs.com/FavoriteMango/p/11685702.html 1.事件的定义 ...

  10. 【题解】P5589 小猪佩奇玩游戏(期望)

    [题解]P5589 小猪佩奇玩游戏(期望) 假设一个点有\(x\)个点(包括自己)可以到达他,他就对答案有\(1/x\)的贡献.这是因为这个点必须被删掉而通过删掉这个点本身删掉这个点的概率是\(1/x ...