国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

hdu 1024 Max Sum Plus Plus(最大M子段和)

2019-11-06 06:36:04
字體:
來源:轉載
供稿:網友

dp一直就不大會,練練dp 參考題解:http://www.cnblogs.com/kuangbin/archive/2011/08/04/2127085.html http://www.cnblogs.com/dongsheng/archive/2013/05/28/3104629.html 我的理解在注釋里面

//dp[i][j] = max(dp[i][j-1],max(dp[i-1][0]~dp[i-1][j-1]))+num[i]//dp[i][j]表示前j個數字(包含第j個)分成i段的最大值//dp[i][j]只和dp[i][j-1]和dp[i-1][0~j-1]有關,用滾動數組就可以//max(dp[i-1][0]~dp[i][j-1])在計算的時候就可以順便求出來#include <cstdio>#include <cstring>#include <algorithm>const int INF = 99999999;const int MAXN = 1000010;int num[MAXN],dp[MAXN],PRe[MAXN];int main(){ int m,n,temp; while(scanf("%d %d",&m,&n) != EOF) { for(int i = 1; i <= n; ++i) scanf("%d",&num[i]); memset(dp,0,sizeof(dp)); memset(pre,0,sizeof(pre)); for(int i = 1; i <= m; ++i) { temp = -INF; //dp[i][j],當j=i-1時,i-1個元素分成i段顯然是不行的,所以j=i for(int j = i; j <= n; ++j) { dp[j] = std::max(dp[j-1], pre[j-1]) + num[j]; //temp是j-1(包括第j-1個)之前的最大值 pre[j-1] = temp; temp = std::max(temp,dp[j]); } } printf("%d/n",temp); } return 0;}
上一篇:caffe_layer參數

下一篇:進度條

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漳浦县| 黄陵县| 黎川县| 屏边| 广元市| 大关县| 浙江省| 正定县| 德令哈市| 焦作市| 嵊泗县| 渝中区| 桃江县| 古蔺县| 宁城县| 杂多县| 宁德市| 衡东县| 汶川县| 吉隆县| 平阴县| 泰宁县| 岳阳县| 聊城市| 当阳市| 团风县| 黑龙江省| 无锡市| 虎林市| 冕宁县| 安图县| 宁乡县| 鄯善县| 漯河市| 绥江县| 澳门| 贵港市| 南汇区| 沧源| 洞口县| 璧山县|