【51Nod1769】Clarke and math2(数论,组合数学)

题面

51Nod

题解

考虑枚举一个\(i_k\),枚举一个\(i\),怎么计算\(i_k\)对\(i\)的贡献。

把\(\frac{i}{i_k}\)拆掉,维护一个长度为\(k\)的数组,表示\(\frac{i_{k-1}}{i_{k}}\),对于每一个质因子,假设其出现次数为\(a\),那么就是把\(a\)个元素放进\(k\)个盒子里,盒子可以空,这个的方案数是\({a+k-1\choose k-1}={a+k-1\choose a}\),不难发现\(a\)很小,所以可以直接\(O(a)\)暴力算。

于是我们提前对于每一个\(a\)算出方案数,然后提前把质因数分解好,就可以做到\(O(nlogn)\)了。

#include<iostream>
#include<cstdio>
using namespace std;
#define MOD 1000000007
#define MAX 500500
inline int read()
{
int x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=(x*10ll+ch-48)%MOD,ch=getchar();
return t?-x:x;
}
int n,K,C[25],f[MAX],g[MAX],x[MAX],v[MAX],inv[25];
int main()
{
n=read();K=read();
for(int i=1;i<=n;++i)f[i]=read();
inv[0]=inv[1]=1;for(int i=2;i<=20;++i)inv[i]=1ll*inv[MOD%i]*(MOD-MOD/i)%MOD;
for(int i=1;i<=20;++i)inv[i]=1ll*inv[i-1]*inv[i]%MOD;
for(int a=0;a<=20;++a)
{
int nw=(a+K-1)%MOD;C[a]=inv[a];
for(int i=0;i<a;++i)C[a]=1ll*C[a]*(nw-i+MOD)%MOD;
}
for(int i=1;i<=n;++i)x[i]=i,v[i]=1;
for(int i=2;i<=n;++i)
if(x[i]!=1)
for(int j=i;j<=n;j+=i)
{
int a=0;
while(x[j]%i==0)++a,x[j]/=i;
v[j]=1ll*v[j]*C[a]%MOD;
}
for(int i=1;i<=n;++i)
for(int j=i;j<=n;j+=i)
g[j]=(g[j]+1ll*f[i]*v[j/i])%MOD;
for(int i=1;i<=n;++i)printf("%d ",g[i]);
puts("");return 0;
}

【51Nod1769】Clarke and math2(数论,组合数学)的更多相关文章

  1. 【51Nod 1769】Clarke and math2

    [51Nod 1769]Clarke and math2 题面 51Nod 题解 对于一个数论函数\(f\),\(\sum_{d|n}f(d)=(f\times 1)(n)\). 其实题目就是要求\( ...

  2. 51Nod 1769 Clarke and math2

    51Nod 1769 Clarke and math2 http://www.51nod.com/Challenge/Problem.html#!#problemId=1769 要算的是\(G=F*I ...

  3. 数论 - 组合数学 + 素数分解 --- hdu 2284 : Solve the puzzle, Save the world!

    Solve the puzzle, Save the world! Problem Description In the popular TV series Heroes, there is a ta ...

  4. HDU 4497 数论+组合数学

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4497 解题思路:将满足条件的一组x,z,y都除以G,得到x‘,y',z',满足条件gcd(x',y' ...

  5. Uva 11076 Add Again (数论+组合数学)

    题意:给你N个数,求把他们的全排列加和为多少 思路:对于这道题,假设数字k1在第一位,然后求出剩下N-1位的排列数num1,我们就可以知道k1在第一位时 排列有多少种为kind1, 同理,假设数字k2 ...

  6. Codeforces Round #447 (Div. 2) B. Ralph And His Magic Field【数论/组合数学】

    B. Ralph And His Magic Field time limit per test 1 second memory limit per test 256 megabytes input ...

  7. Codeforces 223C Partial Sums 数论+组合数学

    题意非常easy,求不是那么好求的,k非常大 要操作非常多次,所以不可能直接来的.印象中解决操作比較多无非线段树 循环节 矩阵 组合数等等吧,这道题目 也就仅仅能多画画什么 的了 就以第一个案例为主吧 ...

  8. 51nod1769 Clarke and math 2

    题目 实际上就是要求\(f*I^k\). 因为\(I^k\)是一个积性函数,所以我们只需要考虑如何求\(I^k(p^a)\). 把这个东西转化成一个长度为\(k\)的序列,每一位是\(\frac{i_ ...

  9. P3270 [JLOI2016]成绩比较 容斥 数论 组合数学 拉格朗日插值

    LINK:成绩比较 大体思路不再赘述 这里只说几个我犯错的地方. 拉格朗日插值的时候 明明是n次多项式 我只带了n个值进去 导致一直GG. 拉格朗日插值的时候 由于是从1开始的 所以分母是\((i-1 ...

随机推荐

  1. springboot之jpa的支持

    1.springboot之jpa支持 2.Springboot+bootstrap界面版之增删改查及图片上传 springboot之jpa支持 导入相关pom依赖 <dependency> ...

  2. 如何在Mac上识别和删除损坏的字体

    字体看起来像无害的文件,而且大多数时候都是这样.但是,就像任何计算机文件一样,字体可能会损坏或损坏.发生这种情况时,它们可能会导致文档或应用程序出现问题.在Mac上使用“ 字体簿”来验证已安装的字体, ...

  3. fiddler 常用命令及快捷键

    1.搜索: ?  baidu.com 2.bpu 发起请求时中断 设置断点 bpu baidu.com 取消断点:bpu 3.bpafter  收到响应后中断 设置断点:bpafter baidu.c ...

  4. JS去重的几种常见方法

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  5. Python Poetry 学习和使用

    Poetry是啥? 是一个Python虚拟环境和依赖管理工具,另外它还提供了包管理功能,比如打包和发布.可以用来管理python库和python程序. 安装Poetry curl -sSL https ...

  6. 使用 html2canvas 点击保存时把当前页面生成图片

     style:   #box{     background-image:url('./img/pone.png')     }   body:   <div id="box" ...

  7. laravel 5.5.39 升级到 5.5.45 出现 cookie 序列化异常问题的解决

    把项目里的 laravel 5.5.39 升级到 5.5.45 后,出现如下报错: ErrorExceptionopenssl_encrypt() expects parameter 1 to be ...

  8. 激活函数-Activation Function

    该博客的内容是莫烦大神的授课内容.在此只做学习记录作用. 原文连接:https://morvanzhou.github.io/tutorials/machine-learning/tensorflow ...

  9. jQuery 源码解析(二十四) DOM操作模块 包裹元素 详解

    本节说一下DOM操作模块里的包裹元素子模块,该模块可将当前匹配的元素替换指定的DOM元素,有如下方法: wrap(html)               ;在每个匹配元素的外层添加一层DOM元素   ...

  10. cesium 入门开发系列地图鹰眼功能(附源码下载)

    前言 cesium 入门开发系列环境知识点了解:cesium api文档介绍,详细介绍 cesium 每个类的函数以及属性等等cesium 在线例子 内容概览 cesium 结合 leaflet 实现 ...