【bzoj 3601】一个人的数论 (莫比乌斯反演+伯努利数)
题解:
(吐槽:网上题解那个不严谨猜测真是没谁了……关键是还猜得辣么准……)
直接化简到求和那一段:
$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】一个人的数论 (莫比乌斯反演+伯努利数)相关推荐
- BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演)
BZOJ 3930 Luogu P3172 选数 (莫比乌斯反演) 手动博客搬家:本文发表于20180310 11:46:11, 原地址https://blog.csdn.net/suncongbo/ ...
- 【数论+莫比乌斯反演】Exclusive Multiplication | gym103688E
[数论+莫比乌斯反演]Exclusive Multiplication | gym103688 前言 题意 思路 代码 前言 [ f ( x ) ] [f(x)] [f(x)] 表示艾弗森括号,若 f ...
- 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛
题目描述 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i<=N" ...
- 数学--数论--莫比乌斯反演
一.莫比乌斯反演涉及知识 1.莫比乌斯函数 2.莫比乌斯的线性筛法 3.狄利克雷卷积 4.莫比乌斯反演详解 5.整除法分块 6.杜教筛 二.μ 莫比乌斯函数定义 μ(n)={1n=1(−1)kn= P ...
- [数论]莫比乌斯反演1
索引 莫比乌斯反演1 定理 莫比乌斯反演2 证明 莫比乌斯反演3 技巧 前言 本篇内容全部为定理,无证明 定义 莫比乌斯函数的符号为\(\mu\),通俗的来讲 \[ \mu(n) = \left\{ ...
- 数论 —— 莫比乌斯反演
[反演] 假设我们手头有个数列 F,通过某种变换 H,可以得到函数 G.,即: 但现在只有函数 G,需要求 F,那么我们就需要寻找一种变换 ,使得 G 在经过这种变换后能够获得 F,这个过程即为反演, ...
- 模板 - 数学 - 数论 - 莫比乌斯反演 - 2
新东西: 求$\sum\limits_{i=1}^{n}|\mu(i)|$ 根据莫比乌斯函数的性质,实际上就是求$\sum\limits_{i=1}^{\lfloor\sqrt{n}\rfloor}\ ...
- bzoj 2820: YY的GCD(莫比乌斯反演)
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2111 Solved: 1137 [Submit][Status][Di ...
- BZOJ 3601: 一个人的数论
题目链接:www.lydsy.com/JudgeOnline/problem.php?id=3601 题意: 思路: 因此可以用高斯消元得到ai. const int mod=1000000007; ...
最新文章
- 十大排序算法 导图总结
- nginx同IP、同端口、不同域名时的转发
- Wince C++串口编程
- 随想:如果手机与手机之间具备了无线电测距测向功能
- r语言员工离职_HR,你真的会做员工面谈吗?
- FIXML and FpML - Background, Comparison, Integration Interoperability Opportunities
- mvc根据绝对路径下载文件
- 计算机网络中 子网掩码的算法,[网络天地]子网掩码快速算法(转载)
- 前端转行大数据?没必要
- (ssh整合web导出excel)在ssh框架中使用poi正确导出具有比较高级固定格式的excel 整体过程,查询导出前后台下载...
- Java基础题笔记2
- php分页类 seo,哪种分页url对seo友好?
- YUM安装部署LAMP环境
- 林軒田《机器学习基石》课程总结
- 扫描仪上显示服务器连接错误代码,扫描仪 常见问题解决方法
- HTML基础(新手入门教程)
- css参考手册css3手册_CSS手册:面向开发人员CSS便捷指南
- 红米NOTE8PRO拍照技巧
- 织梦如何更改默认的后台登录账号和密码(亲测可用)
- (JUC)图文并茂!!!! 超详细 偏向锁VS轻量级锁VS重量级锁VS自旋
热门文章
- c++ string 删除字符_字符串操作的全面总结
- python怎么画出好看的统计图_用最简单的 Python ,画最好看的图 [简单数据可视化]...
- 十二、HTML5新增标签特性详解(audio、video、input)
- 机智的ensemble
- LeetCode LCS 02. 完成一半题目(计数+排序)
- LeetCode 525. 连续数组(前缀和+哈希)
- LeetCode 583. 两个字符串的删除操作(动态规划)
- LeetCode 889. 已知前序后序 求二叉树(不唯一)
- LeetCode 1051. 高度检查器
- python可变参数函数二阶导数公式_python中函数的可变参数