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)n1
同时f0(x)=∑r=1nCnrrxr−1f_0(x) = \sum_{r=1}^{n} C_n^{r}rx^{r-1}f0(x)=r=1nCnrrxr1
定义ft(x)=ddx(xft−1(x))f_t(x) = \frac{d}{dx}(xf_{t-1}(x))ft(x)=dxd(xft1(x))
这样的话fk−1(x)=∑r=1nCnrrkf_{k-1}(x) = \sum_{r=1}^{n} C_n^{r}r^kfk1(x)=r=1nCnrrk
那么我们要求的答案ans=fk−1(0)(1)ans = f_{k-1}^{(0)}(1)ans=fk1(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(xft1(x))=ft1(x)+xft1(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)ft1(p)(1)+ft1(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[t1][p]+dp[t1][p+1]
由于我们只需要ans=dp[k−1][0]ans=dp[k-1][0]ans=dp[k1][0],那么就只需要dp[k−2][0...1]dp[k-2][0...1]dp[k2][0...1],…,只需要dp[0][0...k−1]dp[0][0...k-1]dp[0][0...k1]
状态数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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321322.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【背包】小明逛超市(jzoj 2148)

小明逛超市 题目大意&#xff1a; 有一个大小为n的背包&#xff0c;和m件物品&#xff0c;每件物品都有自己的价格和价值还有个数&#xff0c;当个数为0时则为无限件&#xff0c;为1实则为1件&#xff0c;求最大的价值 样例输入 4 5 5 3 0 5 3 1 4 4 0 2 3 0 3 2 1 样…

P4093-[HEOI2016/TJOI2016]序列【CDQ分治,树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/P4093 题目大意 nnn个数字&#xff0c;每次有一个数字可能和原序列不同&#xff0c;但最多只有一个不同。 求所有情况下都满足的最长不降子序列 解题思路 定义maximax_imaxi​表示位置iii的最大数&#xff0c;minimin_imini…

潘正磊:再过三五年 AI会变成开发人员的基本概念

在微软Build 2018开发者大会上&#xff0c;微软公司全球开发平台事业部的资深副总裁潘正磊&#xff08;Julia Liuson&#xff09;接受了界面记者在内的采访。潘正磊在微软西雅图总部带领一千多人组成的团队&#xff0c;微软的开发工具&#xff0c;包括Visual Studio&#xff0c…

codeforces 938D Buy a Ticket 有初值的Dijkstra、有趣的题目

题意 给出一些城市电影票的价格&#xff0c;以及城市之间交通的路费&#xff0c;询问每一个城市怎样才能花最少的钱看到电影&#xff08;看完电影还要再回来&#xff09;。 题解 这是一道不太难但是挺有趣的题目。 我们这样想&#xff0c;每个城市只需要查看票价比他更便宜的城…

P2480-[SDOI2010]古代猪文【中国剩余定理,Lucas定理】

大早上起来写题有助于醒脑&#xff08;其实是昨晚没睡好/kk 正题 题目链接:https://www.luogu.com.cn/problem/P2480 题目大意 给出nnn和ggg&#xff0c;求g∑d∣nCnd%999911659g^{\sum_{d|n}C_{n}^d}\% 999911659g∑d∣n​Cnd​%999911659 解题思路 因为999911659999911659…

qMISPlat入门级使用问题解答一

qMISPlat 2.0(业务配置开发平台) 自2018-4-18号正式开源以来&#xff0c;得到了众多.net core爱好者的关注&#xff0c;现将近半个月以来&#xff0c;大家反馈的一些使用配置方面的问题统一作如下解答。如你对qMISPlat不了解&#xff0c;请查看文章qMISPlat产品介绍。一、从码云…

【DP】小明游天界(zjoj 2149)

小明游天界 题目大意&#xff1a; 有 m个单位时间&#xff0c;让你从1走到n&#xff08;不能早到&#xff0c;不能晚到&#xff09;&#xff0c;要使经过的城市最多&#xff0c;若无法用m个单位时间到达n就输出-1 样例输入 5 12 4 1 2 5 1 4 3 4 2 4 2 5 5 样例输出 …

codeforces 935E Fafa and Ancient Mathematics 语法树、动态规划

题解 一道很有意思的题目&#xff0c;同时把动态规划和语法树结合起来&#xff0c;很有新意&#xff0c;思路我是想出来了&#xff0c;但是我的写法较为麻烦&#xff0c;从别人的submission中找了一个写起来简介的代码分享给大家。 看到表达式的形式&#xff0c;我们可以想到使…

P1429-平面最近点对(加强版)【分治】

正题 题目链接:https://www.luogu.com.cn/problem/P1429 题目大意 平面上nnn个点&#xff0c;求最近点对 解题思路 考虑分治求最近点对&#xff0c;首先将平行于yyy轴将平面穿过xxx左边的中位数分割成两半&#xff0c;现在最近点对有三种可能&#xff0c; 在分割线左边在分…

夏季(8 ~9)月 在深圳举办线下dotnet 大会 调查

随着微软 Build 2018的落幕&#xff0c;微软为.NET Core的应用规划了七大场景&#xff1a;计划今年夏季&#xff08;8 ~9&#xff09;月 在深圳举办线下dotnet 大会 &#xff0c;特此向大家做个调查。请大家抽出5分钟做下投票&#xff1a;顺便送大家一个福利&#xff1a;.NET社…

2019.01.22【NOIP普及组】模拟赛C组总结

总结 这次模拟赛拿到了10010010060360的分数 第1,2题不怎么难&#xff0c;快速解决&#xff0c;第3题看到之后马上想到了混合背包&#xff0c;打了大概半小时解决了&#xff0c;最后一道题想来想去&#xff0c;想了一堆没用的东西&#xff0c;最后打了一个垃圾DP拿了60分&…

codeforces 938E MaxHistory 组合数学

题意 给出一个长为n的序列&#xff0c;对于这个序列的任意一个排列&#xff0c;求∑fa\sum f_a∑fa​的值。 题解 我们枚举每一个aia_iai​然后&#xff0c;计算aia_iai​出现了多少次&#xff0c;然后把ai∗numa_i*numai​∗num加入到ans里面。 考虑aia_iai​什么时候出现。 a…

.NET 图形化开源爬虫Hawk 3发布

超级图形化爬虫Hawk已经发布两年半时间了&#xff0c;2015年升级到第二版&#xff0c;收到上千条用户反馈(tucao)&#xff0c;100多个红包&#xff0c;总共666块五毛~一直想攒着这笔钱&#xff0c;去北境之王天通苑的龙德商场买最心爱的阿迪王&#xff01;啥&#xff0c;你不知…

P4027-[NOI2007]货币兑换【斜率优化dp,CDQ分治】

正题 题目链接:https://www.luogu.com.cn/problem/P4027 题目大意 nnn天开始时有SSS元钱&#xff0c;每天AAA种股票价格为aia_iai​,BBB种价格为bib_ibi​。然后出售必须AAA和BBB出售相同比例&#xff0c;买入时AAA和BBB必须按照rir_iri​的比例买入。 求最后的钱最多是多少 …

【栈】【字符】匹配(jzoj 1612)

匹配 题目大意&#xff1a; 给你一个长度为n的字符串&#xff08;有多组数据&#xff09;&#xff0c;中间有小写字母&#xff08;没用的东西&#xff09;和大写字母&#xff0c;A-M是左括号&#xff0c;与之相对的是右括号Z-N&#xff08;之所以说是Z-N而不是N-Z是因为只有Z…

codeforces 940E Cashback 有趣的dp

题解 这么明显的一个dp&#xff0c;我怎么就没看出来呢&#xff1f;&#xff01; 首先我们需要一些前提条件&#xff1a;任何划分出来的一个区间的长度不应该超过c。 如果这个区间长度大于c&#xff0c;那么设lenn∗cklenn∗ck&#xff0c;那么这个区间应该被分成n个长度为c的…

理解 C# 项目 csproj 文件格式的本质和编译流程

写了这么多个 C# 项目&#xff0c;是否对项目文件 csproj 有一些了解呢&#xff1f;Visual Studio 是怎么让 csproj 中的内容正确显示出来的呢&#xff1f;更深入的&#xff0c;我能够自己扩展 csproj 的功能吗&#xff1f;本文将直接从 csproj 文件格式的本质来看以上这些问题…

P2000-拯救世界【生成函数,NTT】

正题 题目链接:https://www.luogu.com.cn/problem/P2000 题目大意 十种东西&#xff0c;有要求 金神石A的块数必须是 6 的倍数。 木神石A最多用 9 块。 水神石A最多用 5 块。 火神石A的块数必须是 4 的倍数。 土神石A最多用 7 块。 金神石B的块数必须是 2 的倍数。 木神石B最…

【模拟】生日蛋糕(jzoj 1613)

生日蛋糕 题目大意&#xff1a; 一个正方形蛋糕&#xff0c;竖着横着各切一刀&#xff0c;使他变成四块正方形蛋糕&#xff0c;蛋糕中有一些巧克力&#xff0c;而小明只能拿巧克力最少的一块&#xff0c;请问小明要怎么切才能吃到最多的巧克力 样例输入 8 …#…#… .##……

使用.NET Core与Google Optimization Tools实现加工车间任务规划

前一篇文章《使用.NET Core与Google Optimization Tools实现员工排班计划Scheduling》算是一种针对内容的规划&#xff0c;而针对时间顺序任务规划&#xff0c;加工车间的工活儿是一个典型的场景。在加工车间有不同的工活儿&#xff0c;一般称为作业&#xff0c;每种作业都有多…