【BZOJ】【3157】&【BZOJ】【3516】国王奇遇记
数论
题解:http://www.cnblogs.com/zhuohan123/p/3726933.html
copy一下推导过程:
令$$S_i=\sum_{k=1}^{n}k^im^k$$
我们有$$ \begin{aligned} (m-1)S_i &= mS_i-S_i \\&=\sum_{k=1}^n k^im^{k+1}-\sum_{k=1}^n k^i m^k \\&=\sum_{k=2}^{n+1}(k-1)^i m^k-\sum_{k=1}^n k^i m^k \\&=n^i m^{n+1}+\sum_{k=1}^n m^k ( (k-1)^i-k^i ) \\&=n^i m^{n+1}+\sum_{k=1}^n \big( \sum_{j=1}^{i-1}(-1)^{i-j} \binom{i}{j}k^jm^k\big) \\&=n^i m^{n+1}+\sum_{j=0}^{i-1}(-1)^{i-j}\binom{i}{j} S_j \end{aligned} $$
/**************************************************************
Problem: 3516
User: Tunix
Language: C++
Result: Accepted
Time:372 ms
Memory:1300 kb
****************************************************************/ //BZOJ 3157
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
#define pb push_back
using namespace std;
typedef long long LL;
const int N=;
const LL P=;
/*******************template********************/
#define sqr(x) (x)*(x)
LL n,m;
LL fac[N],inv[N],s[N];
LL C(int a,int b){return fac[a]*inv[b]%P*inv[a-b]%P;}
LL Pow(LL a,LL b){
LL r=;
for(;b;b>>=,a=a*a%P) if (b&) r=r*a%P;
return r;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("3157.in","r",stdin);
freopen("3157.out","w",stdout);
#endif
scanf("%lld%lld",&n,&m);
if (m==){ printf("%lld\n",(n+)*n/%P);return ;}
fac[]=; F(i,,m) fac[i]=fac[i-]*i%P;
inv[m]=Pow(fac[m],P-);
inv[]=;
D(i,m-,) inv[i]=inv[i+]*(i+)%P;
s[]=((Pow(m,n+)-m)%P+P)%P*Pow(m-,P-)%P;
F(i,,m){
s[i]=Pow(n,i)*Pow(m,n+)%P;
rep(j,i) s[i]=((s[i]+((i-j)%== ? - : )*C(i,j)*s[j])%P+P)%P;
s[i]=s[i]*Pow(m-,P-)%P;
}
printf("%lld\n",s[m]);
return ;
}
3157: 国王奇遇记
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 357 Solved: 196
[Submit][Status][Discuss]
Description

Input
共一行包括两个正整数N和M。
Output
共一行为所求表达式的值对10^9+7取模的值。
Sample Input
5 3
Sample Output
HINT
1<=N<=10^9,1<=M<=200
Source
【BZOJ】【3157】&【BZOJ】【3516】国王奇遇记的更多相关文章
- bzoj 3157 && bzoj 3516 国王奇遇记——推式子
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...
- bzoj 3157 & bzoj 3516 国王奇遇记 —— 推式子
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...
- 3157: 国王奇遇记 & 3516: 国王奇遇记加强版 - BZOJ
果然我数学不行啊,题解君: http://www.cnblogs.com/zhuohan123/p/3726933.html const h=; var fac,facinv,powm,s:..]of ...
- BZOJ 3516 国王奇遇记加强版(乱推)
题意 求\(\sum_{k=1}^{n}k^mm^k (n\leq1e9,m\leq1e3)\) 思路 在<>中有一个方法用来求和,称为摄动法. 我们考虑用摄动法来求这个和式,看能不能得到 ...
- bzoj3157 3516 国王奇遇记
Description Input 共一行包括两个正整数N和M. Output 共一行为所求表达式的值对10^9+7取模的值. 特判m=1 m≠1时: 设S[u]=sigma(i^u*m^i) m*S ...
- BZOJ3157: 国王奇遇记 & 3516: 国王奇遇记加强版
令\[S_i=\sum_{k=1}^n k^i m^k\]我们有\[\begin{eqnarray*}(m-1)S_i & = & mS_i - S_i \\& = & ...
- 【BZOJ3157/3516】国王奇遇记(数论)
[BZOJ3157/3516]国王奇遇记(数论) 题面 BZOJ3157 BZOJ3516 题解 先考虑怎么做\(m\le 100\)的情况. 令\(f(n,k)=\displaystyle \sum ...
- bzoj3157国王奇遇记(秦九韶算法+矩乘)&&bzoj233AC达成
bz第233题,用一种233333333的做法过掉了(为啥我YY出一个算法来就是全网最慢的啊...) 题意:求sigma{(i^m)*(m^i),1<=i<=n},n<=10^9,m ...
- bzoj3157: 国王奇遇记
emmm...... 直接看题解好了: BZOJ-3157. 国王奇遇记 – Miskcoo's Space O(m)不懂扔掉 总之,给我们另一个处理复杂求和的方法: 找到函数之间的递推公式! 这里用 ...
随机推荐
- 利用脚本修改SQL SERVER排序规则
利用脚本修改SQL SERVER排序规则 编写人:CC阿爸 2014-3-1 l 今年的一项重要工作是对公司所用系统进行繁简的转换,程序转成简体基本很容易解决,但数据库转换成简体,就没那么容易了.经 ...
- mac配置iterm2和ohmyzsh
点击我直通 iTerm2下载 利用命令下载ohmyzsh curl -L http://install.ohmyz.sh | sh 安装好之后,运行 vi ~/.zshrc 可以查看到以下配置内容信息 ...
- struts2集成javamail发邮件(带附件)实践记录
一.代码预览 这两天在做struts2上的邮件发送.以前的项目有用到spring,用spring提供的邮件支持类很方便可以完成这个功能,但是现在只用struts2的话,就碰到了一系列的问题. 代码是从 ...
- MySQL5.7重置root密码
版本更新 缘故,好多网上的教程都不适用了,甚至连官网的文档也不是能够顺利操作的. 如果 MySQL 正在运行,首先杀之: killall -TERM mysqld. 运行mysqld_safe --s ...
- 十天学会单片机Day5 IIC总线AT2402芯片(EEPROM)应用
1.采用串行总线技术可以使系统的硬件设计大大简化.系统的体积减小.可靠性提高.同时,系统的更改和扩充极为容易. 常用的串行扩展总线有: IIC (Inter IC BUS)总线.单总线(1-WIRE ...
- 将python2.7+django1.10部署到SAE上
首先我想说的是我为什么选择SAE呢?本人学生一枚,没钱.然后sae好像又有免费的一定限额,所以我就选了它. 期间曲折颇多,实在不是三言两语所能道情的.各种百度,谷歌,最后所幸成功了,幸哉! 主要参考了 ...
- matlab封装DLL混合编程总结
最近做了个项目要用到matlab做些算法处理,然后用.net项目调用这个类,我把这个matlab封装dll总结了下如下: matlab是商业数学软件,优势是在算法开发上面有很强的功能,提供了很多数学算 ...
- hdu 4613 Points<计算几何>
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4613 题意: 判断一个集合中的点能不能由另一个集合中的点,通过平移,旋转,放缩得到~ 思路:先求出集合中的 ...
- IO - 同步,异步,阻塞,非阻塞 (转)
转自:http://blog.csdn.net/historyasamirror/article/details/5778378 向大牛学习,言归正传.同步(synchronous) IO和异步(as ...
- Mybatis 中常用的java类型与jdbc类型
JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIM ...