dp[i] = min(dp[j]+(sum[...
可以说,dp是一个庞大的世界,这个从我刚接触dp的时候,我的老师就是这么告诫我的。事实能够好好掌握……
这个题目要是顺着dp的话很难做,但是倒着推就很容易退出比较简单的关系式了。dp[i]=min(dp[u]+(sum[u-1]-sum[i-1]+s)*f[i]);dp[i]代表从i到结尾需要花费的代价,sum[i]表示1到i的时间和,f[i]代表i到n的代价和。 然后对于i状态来说,j由于k等价于 (dp[j]-dp[k])/(sum[k-1]-sum[j-1])#include #include using namespace std;const int maxn=1e4+9;long long sum[maxn],f[maxn];long long dp[maxn];int que[max
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M