codeforces 932E Team Work 高等数学求导、dp
题解
这是一道纯粹的数学求导题目。
首先我们先写出要求的公式。
ans=∑r=1nCnrrkans = \sum_{r=1}^{n} C_n^{r}r^kans=∑r=1nCnrrk
乍一看,雾草好吓人,但是学过高等数学且稍有常识的人(不是我)可以看出,这个可以由某个式子不断乘x并求导得出来。
没错,稍有常识的人又可以看出来了,这个式子就是(1+x)n(1+x)^n(1+x)n
(1+x)n=∑r=0nCnrxr(1+x)^n = \sum_{r=0}^{n}C_n^{r}x^r(1+x)n=∑r=0nCnrxr
我们定义 f0=ddx(1+x)n=n(1+x)n−1f_0 = \frac{d}{dx}(1+x)^n = n(1+x)^{n-1}f0=dxd(1+x)n=n(1+x)n−1
同时f0(x)=∑r=1nCnrrxr−1f_0(x) = \sum_{r=1}^{n} C_n^{r}rx^{r-1}f0(x)=∑r=1nCnrrxr−1
定义ft(x)=ddx(xft−1(x))f_t(x) = \frac{d}{dx}(xf_{t-1}(x))ft(x)=dxd(xft−1(x))
这样的话fk−1(x)=∑r=1nCnrrkf_{k-1}(x) = \sum_{r=1}^{n} C_n^{r}r^kfk−1(x)=∑r=1nCnrrk
那么我们要求的答案ans=fk−1(0)(1)ans = f_{k-1}^{(0)}(1)ans=fk−1(0)(1)
我们知道ft(x)=ddx(xft−1(x))=ft−1(x)+xft−1(1)(x)f_t(x) = \frac{d}{dx}(xf_{t-1}(x))=f_{t-1}(x)+xf_{t-1}^{(1)}(x)ft(x)=dxd(xft−1(x))=ft−1(x)+xft−1(1)(x)
通过这个操作,ft(p)(1)=(p+1)ft−1(p)(1)+ft−1(p+1)(1)f_t^{(p)}(1) = (p+1)f_{t-1}^{(p)}(1)+f_{t-1}^{(p+1)}(1)ft(p)(1)=(p+1)ft−1(p)(1)+ft−1(p+1)(1)
没错!这就是我们的递推公式!
定义dp[i][j]=fi(j)(1)dp[i][j] = f_{i}^{(j)}(1)dp[i][j]=fi(j)(1)
dp[i][j]=(p+1)∗dp[t−1][p]+dp[t−1][p+1]dp[i][j] = (p+1)*dp[t-1][p]+dp[t-1][p+1]dp[i][j]=(p+1)∗dp[t−1][p]+dp[t−1][p+1]
由于我们只需要ans=dp[k−1][0]ans=dp[k-1][0]ans=dp[k−1][0],那么就只需要dp[k−2][0...1]dp[k-2][0...1]dp[k−2][0...1],…,只需要dp[0][0...k−1]dp[0][0...k-1]dp[0][0...k−1]
状态数O(K2)O(K^2)O(K2)
代码
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
ll N,k;
const ll mod = 1e9+7;
const int maxn = 5007;
ll dp[maxn][maxn],sum[maxn];
ll mod_pow(ll x,ll n){ll ans = 1;while(n){if(n&1)ans = ans * x % mod;x = x*x%mod;n >>= 1;}return ans;
}
int main(){cin>>N>>k;if(N == 1){return 0*printf("1\n");}ll pre = N;for(int t = 0;t < min(N,5005ll);++t){dp[0][t] = pre*mod_pow(2,N-1-t)%mod;pre = pre*(N-1-t)%mod;}for(int i = 1;i <= k;++i){for(int j = 0;j <= k;++j){dp[i][j] = ((j+1)*dp[i-1][j] + dp[i-1][j+1])%mod;}}printf("%lld\n",dp[k-1][0]);return 0;
}
codeforces 932E Team Work 高等数学求导、dp相关推荐
- 高等数学求导积分公式
高等数学求导积分公式 1 基本初等函数导数公式 (xα)′=αxα(x ^ \alpha)' = \alpha x ^ \alpha (xα)′=αxα (sinx)′=cosx(\sin x)' ...
- 高等数学——求导工具
(一)求导公式 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . 11 . ...
- 高等数学-求导基本公式
- minitorch系列记录——3. 自动求导
参考: 文档地址: https://minitorch.github.io/module1.html github地址: https://github.com/minitorch/Module-1 参 ...
- 【WC2019】数树【子集反演】【结论】【树形dp】【生成函数】【函数求导】【多项式全家桶】
题意:有两棵基于同一点集的树,点集大小为 nnn ,两棵树中有 opopop 棵未确定,可以取所有 nn−2n^{n-2}nn−2 种可能.给每个点染上 [1,y][1,y][1,y] 中的一个颜色, ...
- 二元函数对xy同时求导_更新丨10分钟掌握高等数学上册函数极限求解问题(考研、期末复习均可以用)...
学过高数的都知道,极限在高数的应用频率是非常高的,而且是很多高数知识的基础,求导.变限积分求极限.多重积分求极限等等均会用到 虽然是基础,但是很多人在刚学习的时候就会直接被理论弄懵圈,因此就无法继续再 ...
- 隐函数及参数方程求导——“高等数学”
各位CSDN的uu们你们好呀,今天,小雅兰的内容是隐函数求导和参数方程求导,下面,就让我们进入求导数的世界吧 一.隐函数的导数 二.隐函数求导 三.由参数方程确定的函数的导数 四.相关变化率 一.隐 ...
- 【高等数学】各类函数的导数与微分求导法
总结一下在高等数学第二章<一元函数微分学>中几种函数的导数与微分的求导方法~ ----------NO.1 反函数的求导--------- 看不懂上面的没关系,简单来说,反函数的求导方法就 ...
- 高等数学期末总复习DAY12.复合函数的链式求导、隐函数求导、
DAY12. 鸽了一天,它又来了 文章目录 DAY12. 1.复合函数的链式求导 2.隐函数求导 1.复合函数的链式求导 这部分的内容也比较简单,有两个法则,按照正常步骤来一般就可以解出来题目 u对x ...
最新文章
- crontab 备份mysql数据库_crontab定时备份mySQL数据库
- 报告 | 从20世纪70年代至今,自动驾驶汽车的发展经历了哪些历史性的变革?
- CodeForces 340C
- 文件操作函数(读写)
- 上海工程技术大学c语言,上海工程技术大学 C语言实习报告.doc
- Windows XP 下的 MySQL+Apache+PHP 运行环境架设 (顶)
- flock SUSE/RHEL
- JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框
- javascript示例代码
- Spark文本文件输入输出
- Landsat8处理小工具(python)
- USB Repair(usb设备修复工具)官方正式版V8.0.3.1069 | u盘修复软件下载 | u盘修复软件哪个最好?
- vb科学计算机ppt,《计算机级VB教程》PPT课件.ppt
- Scrapy 框架爬取豆瓣电影的信息(包括图片)和电影评论-2
- 公钥基础设施PKI体系介绍
- 查看linux内存大小
- Yate for mac(标记和管理音频文件工具)
- css英文字体 在线引用,css字体英文名称(示例代码)
- 企业公众号都离不开的四种运营模式
- 实时系统vxWorks - timer定时应用
热门文章
- c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?
- java 数组 树_java使用顺序数组实现二叉树
- [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串
- 邻接表2 -试在邻接表存储结构上实现图的基本操作 del_vertex-数据结构-图-icoding
- android中的shape资源,Android Drawable资源讲解之shape篇
- yii输出mysql查询日志_Yii2框架设置错误日志输出到日志或数据库
- java gt_JAVA泛型知识--gt; lt;? extends Tgt;和lt;? super Tgt;
- PTA 三足鼎立 (lower_bound()+upper_bound())
- string(STL)
- Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!)