题解:

  (吐槽:网上题解那个不严谨猜测真是没谁了……关键是还猜得辣么准……)

  直接化简到求和那一段:

$f_{d}(n)=\sum_{t|n}\mu(t)t^{d}\sum_{i=1}^{\frac{n}{t}}i^{d}$

$设S_{d}(T)=\sum_{i=1}^{T}i^{d}$

  那这个是什么呢?伯努利数(我会说我百度找到的吗……)

百度

递推公式

$s_{p}(T)=\sum_{i=1}^{p+1}\frac{(-1)^{p+1-i}C_{p+1}^{i}B_{p+1-i}}{p+1}n^{i}$(这个是百度那个公式化过来的)

  然后$n^{i}$前面那一堆玩意就是网上题解的$a_{i}$。

  接下来的化简我就不解释了……http://www.cnblogs.com/jianglangcaijin/p/4033399.html

  然后我们只要求出C和B这题就没了。(貌似可以把d的范围再扩10倍233)

代码:

  

 1 #include<cstdio>
 2 using namespace std;
 3 typedef long long ll;
 4 const ll mod=1e9+7;
 5 const int N=10000;
 6 inline ll read(){
 7     ll s=0,k=1;char ch=getchar();
 8     while(ch<'0'|ch>'9')    ch=='-'?k=-1:0,ch=getchar();
 9     while(ch>47&ch<='9')    s=s*10+(ch^48),ch=getchar();
10     return s*k;
11 }
12 inline ll powmod(ll a,ll b){
13     ll ans=1;
14     if(b<0)
15         return powmod(powmod(a,mod-2),-b);
16     a%=mod;
17     while(b){
18         if(b&1) ans=ans*a%mod;
19         b>>=1;a=a*a%mod;
20     }return ans;
21 }
22 ll w,d;
23 ll p[N],pk[N];
24 ll tot=1;
25 inline ll calc(int n){
26     ll t=powmod(tot,n);
27     for(int i=1;i<=w;i++){
28         t=t*(1ll-powmod(p[i],d-n))%mod;
29     }
30     if(t<0) t+=mod;
31     return t;
32 }
33 ll c[105][105],b[105];
34 int main(){
35     d=read(),w=read();
36     ll n=w;
37     for(int i=1;i<=n;i++){
38         p[i]=read(),pk[i]=read();
39         tot=tot*powmod(p[i],pk[i])%mod;
40     }
41     c[0][0]=1;
42     for(int i=1;i<=101;i++){
43         c[i][0]=1;
44         for(int j=1;j<=i;j++)
45             c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
46     }
47     b[0]=1;
48     for(int i=1;i<=101;i++){
49         for(int j=0;j<i;j++)
50             b[i]=(b[i]+c[i+1][j]*b[j])%mod;
51         b[i]=b[i]*(-powmod(i+1,mod-2))%mod+mod;
52         b[i]%=mod;
53     }
54     ll ans=0;
55     ll inv=powmod(d+1,mod-2);
56     for(int i=1;i<=d+1;i++){
57         ll temp=((d+1-i&1)?-1:1)*c[d+1][i]*b[d+1-i]%mod*inv%mod;
58         if(temp==0)
59             continue;
60         temp=temp*calc(i)%mod;
61         ans+=temp;
62         ans%=mod;
63     }
64     printf("%lld\n",(ans%mod+mod)%mod);
65 }
66 /*
67 3 2
68 2 1
69 5 1
70 */

转载于:https://www.cnblogs.com/Troywar/p/7599145.html

【bzoj 3601】一个人的数论 (莫比乌斯反演+伯努利数)相关推荐

  1. BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)

    BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演) 手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/ ...

  2. 【数论+莫比乌斯反演】Exclusive Multiplication | gym103688E

    [数论+莫比乌斯反演]Exclusive Multiplication | gym103688 前言 题意 思路 代码 前言 [ f ( x ) ] [f(x)] [f(x)] 表示艾弗森括号,若 f ...

  3. 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛

    题目描述 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i<=N" ...

  4. 数学--数论--莫比乌斯反演

    一.莫比乌斯反演涉及知识 1.莫比乌斯函数 2.莫比乌斯的线性筛法 3.狄利克雷卷积 4.莫比乌斯反演详解 5.整除法分块 6.杜教筛 二.μ 莫比乌斯函数定义 μ(n)={1n=1(−1)kn= P ...

  5. [数论]莫比乌斯反演1

    索引 莫比乌斯反演1 定理 莫比乌斯反演2 证明 莫比乌斯反演3 技巧 前言 本篇内容全部为定理,无证明 定义 莫比乌斯函数的符号为\(\mu\),通俗的来讲 \[ \mu(n) = \left\{ ...

  6. 数论 —— 莫比乌斯反演

    [反演] 假设我们手头有个数列 F,通过某种变换 H,可以得到函数 G.,即: 但现在只有函数 G,需要求 F,那么我们就需要寻找一种变换 ,使得 G 在经过这种变换后能够获得 F,这个过程即为反演, ...

  7. 模板 - 数学 - 数论 - 莫比乌斯反演 - 2

    新东西: 求$\sum\limits_{i=1}^{n}|\mu(i)|$ 根据莫比乌斯函数的性质,实际上就是求$\sum\limits_{i=1}^{\lfloor\sqrt{n}\rfloor}\ ...

  8. bzoj 2820: YY的GCD(莫比乌斯反演)

    2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 2111  Solved: 1137 [Submit][Status][Di ...

  9. BZOJ 3601: 一个人的数论

    题目链接:www.lydsy.com/JudgeOnline/problem.php?id=3601 题意: 思路: 因此可以用高斯消元得到ai. const int mod=1000000007; ...

最新文章

  1. 十大排序算法 导图总结
  2. nginx同IP、同端口、不同域名时的转发
  3. Wince C++串口编程
  4. 随想:如果手机与手机之间具备了无线电测距测向功能
  5. r语言员工离职_HR,你真的会做员工面谈吗?
  6. FIXML and FpML - Background, Comparison, Integration Interoperability Opportunities
  7. mvc根据绝对路径下载文件
  8. 计算机网络中 子网掩码的算法,[网络天地]子网掩码快速算法(转载)
  9. 前端转行大数据?没必要
  10. (ssh整合web导出excel)在ssh框架中使用poi正确导出具有比较高级固定格式的excel 整体过程,查询导出前后台下载...
  11. Java基础题笔记2
  12. php分页类 seo,哪种分页url对seo友好?
  13. YUM安装部署LAMP环境
  14. 林軒田《机器学习基石》课程总结
  15. 扫描仪上显示服务器连接错误代码,扫描仪 常见问题解决方法
  16. HTML基础(新手入门教程)
  17. css参考手册css3手册_CSS手册:面向开发人员CSS便捷指南
  18. 红米NOTE8PRO拍照技巧
  19. 织梦如何更改默认的后台登录账号和密码(亲测可用)
  20. (JUC)图文并茂!!!! 超详细 偏向锁VS轻量级锁VS重量级锁VS自旋

热门文章

  1. c++ string 删除字符_字符串操作的全面总结
  2. python怎么画出好看的统计图_用最简单的 Python ,画最好看的图 [简单数据可视化]...
  3. 十二、HTML5新增标签特性详解(audio、video、input)
  4. 机智的ensemble
  5. LeetCode LCS 02. 完成一半题目(计数+排序)
  6. LeetCode 525. 连续数组(前缀和+哈希)
  7. LeetCode 583. 两个字符串的删除操作(动态规划)
  8. LeetCode 889. 已知前序后序 求二叉树(不唯一)
  9. LeetCode 1051. 高度检查器
  10. python可变参数函数二阶导数公式_python中函数的可变参数