Link:

BZOJ 3157 传送门

Solution:

题意:求解$\sum_{i=1}^n m^i \cdot {i^m}$

$O(m^2)$做法:

定义一个函数$f[i]$,$f[i]=\sum_{i=1}^n k^i \cdot {m^k}$

$(m-1)\cdot f(i)=\sum_{k=1}^n k^i \cdot m^{k + 1} - \sum_{k=1}^n k^i \cdot m^k$

$= \sum_{k=1}^{n+1} (k - 1)^i\cdot m^k - \sum_{k=1}^n k^i \cdot m^k $

$=  n^i \cdot m^{n + 1} + \sum_{k=1}^n m^k \sum_{j = 0}^{i - 1} {i \choose j} \cdot (-1)^{i - j} \cdot k^j $

$=  n^i \cdot m^{n + 1} + \sum_{j = 0}^{i - 1} {i \choose j} \cdot (-1)^{i - j} \sum_{k = 1}^n k^j \cdot m^k $

$=  n^i \cdot m^{n + 1} + \sum_{j = 0}^{i - 1} {i \choose j} \cdot (-1)^{i - j} \cdot f(j) $

接下来只要预处理$C_i^j$,递推即可

Code:

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int MAXN=1e3+;
const int MOD=1e9+; ll C[MAXN][MAXN],f[MAXN],n,m,pre,dvs; ll quick_pow(ll a,ll b)
{
ll base=a,res=;
while(b)
{
if(b&) res=(res*base)%MOD;
b>>=;base=base*base%MOD;
}
return res;
} int main()
{
scanf("%lld%lld",&n,&m);
if(m==){printf("%lld",n*(n+)/%MOD);return ;} pre=quick_pow(m,n+);dvs=quick_pow(m-,MOD-);
C[][]=;
for(int i=;i<=m;i++)
{
C[i][]=;
for(int j=;j<=i;j++) C[i][j]=(C[i-][j]+C[i-][j-])%MOD;
} f[]=(pre-m+MOD)%MOD;(f[]*=dvs)%=MOD;
for(int i=;i<=m;i++)
{
pre=pre*n%MOD;f[i]=pre;
for(int j=;j<i;j++)
{
ll mark=((i-j)&)?-:;
(f[i]+=mark*C[i][j]*f[j]%MOD)%=MOD;
}
(f[i]+=MOD)%=MOD;(f[i]*=dvs)%=MOD;
}
printf("%lld",f[m]);
return ;
}

Review:

此题的加强版:BZOJ 3516/BZOJ 4126

最后一题要用到$O(m)$的算法,然而我并不能看懂

Resources:

http://blog.miskcoo.com/2014/06/bzoj-3157

http://blog.miskcoo.com/2015/08/special-polynomial-linear-interpolation

http://trinkle.blog.uoj.ac/blog/478

杜教论文:http://www.docin.com/p-638538589.html

也许先补一补多项式定理再多看看具体数学没有公式密集恐惧症了就能看懂了?

[BZOJ 3157] 国王奇遇记的更多相关文章

  1. BZOJ 3157: 国王奇遇记 (数学)

    题面:BZOJ3157 一句话题意: 求: \[ \sum_{i=1}^ni^m\ \times m^i\ (mod\ 1e9+7)\ \ (n \leq 1e9,m\leq200)\] 题解 令 \ ...

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

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

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

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

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

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

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

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

  6. 【BZOJ】【3157】&【BZOJ】【3516】国王奇遇记

    数论 题解:http://www.cnblogs.com/zhuohan123/p/3726933.html copy一下推导过程: 令$$S_i=\sum_{k=1}^{n}k^im^k$$ 我们有 ...

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

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

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

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

  9. bzoj3157: 国王奇遇记

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

随机推荐

  1. Treap 模板

    感觉平衡树也没有以前想的那么玄乎,(其实set超好用的),非旋式Treap挺好理解,和可并堆,二叉搜索树有很大联系 推荐博客:http://memphis.is-programmer.com/post ...

  2. 【BZOJ 1930】 [Shoi2003]pacman 吃豆豆 最大费用最大流

    如果你知道他是网络流的话你就很快会想到一个最大费用最大流的模型,然后你发现可能T,然而你发现你只用增广两次,然后你就开心的打了出来,然后发现被稠密图里spfa的丧病时间复杂度坑了,还是会T.于是我就开 ...

  3. 【BZOJ 3643】Phi的反函数 数搜索

    这道题是典型的数搜索,讲究把数一层一层化小,而且还有最重要的大质数剪枝. #include <cstdio> #include <cmath> typedef long lon ...

  4. Ueditor 1.4.3 插入表格后无边框无颜色,不能正常显示

    在使用Ueditor 插入表格的功能时,发现插入时正常. 但保存到后台后再取出来,表格不能正常显示.查看保存的html代码,发现保存时并未给table 添加border属性.以致于再次取出来时,不能正 ...

  5. BZOJ 2063: 我爸是李刚

    2063: 我爸是李刚 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 155  Solved: 82[Submit][Status][Discuss] ...

  6. 【BZOJ2663】灵魂宝石 [二分]

    灵魂宝石 Time Limit: 5 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description “作为你们本体的灵魂,为了能够更好的 ...

  7. React module methods with passing props to child or invoking callback to parent.

    Some code samples for this pupose: import React from "react"; import MyDemo from "./m ...

  8. mysql 表的类型

    MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.ISAM.MERGE.MYISAM.InnoBDB. 这六种又分为两类,一类是”事务安全型”(transaction-safe),包括B ...

  9. python2.7字典转换成json时中文字符串变成unicode的问题:

    参考:http://blog.csdn.net/u014431852/article/details/53058951 编码问题: python2.7字典转换成json时中文字符串变成unicode的 ...

  10. You have not concluded your merge. (MERGE_HEAD exists)(转)

    Git本地有修改如何强制更新 本地有修改和提交,如何强制用远程的库更新更新.我尝试过用git pull -f,总是提示 You have not concluded your merge. (MERG ...