数论


  题解: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

36363

HINT

1<=N<=10^9,1<=M<=200

Source

[Submit][Status][Discuss]

【BZOJ】【3157】&【BZOJ】【3516】国王奇遇记的更多相关文章

  1. bzoj 3157 && bzoj 3516 国王奇遇记——推式子

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...

  2. bzoj 3157 & bzoj 3516 国王奇遇记 —— 推式子

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3157 https://www.lydsy.com/JudgeOnline/problem.p ...

  3. 3157: 国王奇遇记 & 3516: 国王奇遇记加强版 - BZOJ

    果然我数学不行啊,题解君: http://www.cnblogs.com/zhuohan123/p/3726933.html const h=; var fac,facinv,powm,s:..]of ...

  4. BZOJ 3516 国王奇遇记加强版(乱推)

    题意 求\(\sum_{k=1}^{n}k^mm^k (n\leq1e9,m\leq1e3)\) 思路 在<>中有一个方法用来求和,称为摄动法. 我们考虑用摄动法来求这个和式,看能不能得到 ...

  5. bzoj3157 3516 国王奇遇记

    Description Input 共一行包括两个正整数N和M. Output 共一行为所求表达式的值对10^9+7取模的值. 特判m=1 m≠1时: 设S[u]=sigma(i^u*m^i) m*S ...

  6. BZOJ3157: 国王奇遇记 & 3516: 国王奇遇记加强版

    令\[S_i=\sum_{k=1}^n k^i m^k\]我们有\[\begin{eqnarray*}(m-1)S_i & = & mS_i - S_i \\& = & ...

  7. 【BZOJ3157/3516】国王奇遇记(数论)

    [BZOJ3157/3516]国王奇遇记(数论) 题面 BZOJ3157 BZOJ3516 题解 先考虑怎么做\(m\le 100\)的情况. 令\(f(n,k)=\displaystyle \sum ...

  8. bzoj3157国王奇遇记(秦九韶算法+矩乘)&&bzoj233AC达成

    bz第233题,用一种233333333的做法过掉了(为啥我YY出一个算法来就是全网最慢的啊...) 题意:求sigma{(i^m)*(m^i),1<=i<=n},n<=10^9,m ...

  9. bzoj3157: 国王奇遇记

    emmm...... 直接看题解好了: BZOJ-3157. 国王奇遇记 – Miskcoo's Space O(m)不懂扔掉 总之,给我们另一个处理复杂求和的方法: 找到函数之间的递推公式! 这里用 ...

随机推荐

  1. Linux下的Source命令及脚本的执行方式解析

    Linux Source命令及脚本的执行方式解析 http://blog.csdn.net/wangyangkobe/article/details/6595143 当我修改了/etc/profile ...

  2. jQuery操作 input type=checkbox的实现代码

    代码如下: <input type="checkbox">: 2012欧洲杯"死亡之组"小组出线的国家队是:<br> <input ...

  3. IOS学习2

    1. #import,#include 和@class的区别 都引用一个类,根本定义区别:#include ,#import会把所有的copy一份到该文件 #import比#include的优势,im ...

  4. Dll学习三_Dll 相互间以及主程序间的数据共享——测试未通过,应该用内存映射

    测试环境:XP,DELPHI XE 验证通过结构:主程序+一个Dll窗体 共享方式原理:通过主程序与各Dll定义相同的参数结构体,由主程序实例化该结构体,对于各Dll间的共享,通过传主程序实例化的结构 ...

  5. c# equals和==的区别

    简言之: equals必须是类型和值都得相等 == 只要值相等 注意: void Main() { ; ; Console.WriteLine(a.Equals(b)); //True (short会 ...

  6. 第三章 管理程序流(In .net4.5) 之 实现程序流

    1. 概述 本章内容包括 布尔表达式.流控制方式.集合遍历 以及 流跳转. 2. 主要内容 *由于该章内容比较基础,日常用的也很多,故对一些常用的基础内容不再赘述. 2.1 使用布尔表达式 熟悉下列比 ...

  7. tomcat datasource

    <Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource&qu ...

  8. char const*, char*const, const char *const的区别

    C++标准规定,const关键字放在类型或变量名之前等价的.所以,const char*和 char const*是一样的. const char*   //常量指针---指向常量的指针----指针指 ...

  9. GNU make 规则

    clean : rm *.tmp 规则格式: targets : prerequisites recipe ... targets : prerequisites : recipe recipe .. ...

  10. 反射 reflect 初始学习

    类也是对象,本身是java.lang.Class 类的对象. Class的三种表示方式: 1.Class a = A.class: 类名.class的方式.经常在日志记录里面,获取当前类的日志记录生成 ...