HDU 1024Max Sum Plus Plus(最大m字段和)

 /*
動態轉移方程:dp[i][j]=max(dp[i-1]+a[i], max(dp[t][j-1])+a[i]) (j-1<=t<i)
表示的是前i個數j個字段和的最大值是多少!
*/
1
#include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #define N 10000 5 using namespace std; 6 7 int dp[N][N], num[N]; 8 9 int main() 10 { 11 int n, m, i, j, k; 12 while(scanf("%d%d", &m, &n)!=EOF) 13 { 14 for(i=1; i<=n; i++) 15 scanf("%d", &num[i]); 16 memset(dp, 0, sizeof(dp)); 17 for(j=1; j<=m; j++) 18 for(i=j; i<=n-m+j; i++) 19 if(i>j) 20 { 21 dp[i][j]=dp[i-1][j]+num[i]; 22 for(k=j-1; k<i; k++)//可以用一個Max變量一直更新 j-1 到 i-1 的 最大值 23 dp[i][j]=max(dp[i][j], dp[k][j-1]+num[i]); 24 } 25 else dp[i][j]=dp[i-1][j-1]+num[i]; 26 int sum=-1; 27 for(i=m; i<=n; i++) 28 if(dp[i][m]>sum) 29 sum=dp[i][m]; 30 printf("%d\n", sum) ; 31 } 32 return 0; 33 }
/*
時間上優化一下!
*/
#include<iostream> 
#include<cstdio>
#include<cstring>
#define N  1000010 
using namespace std;__int64 dp[N][2], num[N];int main()
{__int64 n, m, i, j, k, pos;while(scanf("%I64d%I64d", &m, &n)!=EOF){for(i=1; i<=n; i++){scanf("%I64d", &num[i]);dp[i][0]=dp[i][1]=0;}pos=1;for(j=1; j<=m; j++){ dp[j][pos]=dp[j-1][pos^1]+num[j];__int64 Max=dp[j-1][pos^1];for(i=j+1; i<=n-m+j; i++){Max=max(Max, dp[i-1][pos^1]);//這一塊直接將 k 的 for循環去掉 dp[i][pos]=max(dp[i-1][pos], Max)+num[i];}pos^=1;}pos^=1;__int64 sum=-99999999;for(i=m; i<=n; i++)if(dp[i][pos]>sum)sum=dp[i][pos];printf("%I64d\n", sum) ;}return 0;
} 

 1 /*
 2   內存上優化一下,一維數組求解!
 3 */
 4 #include<iostream> 
 5 #include<cstdio>
 6 #include<cstring>
 7 #define N  1000010 
 8 using namespace std;
 9 
10 __int64 dp[N], num[N];
11 
12 int main()
13 {
14    __int64 n, m, i, j, k, oldN;
15    __int64 maxN;//記錄dp[k][j-1] (k>=j-1 && k<i) 只有num[i]自己屬于第 j 段 所有情況的最大值! 
16    while(scanf("%I64d%I64d", &m, &n)!=EOF)
17    {
18       for(i=1; i<=n; i++){
19            scanf("%I64d", &num[i]);
20            dp[i]=0;
21        }
22       for(j=1; j<=m; j++)
23          {
24             maxN=max(dp[j-1], dp[j]);// Max = max(dp[j-1][pos^1], dp[j][pos^1])
25             dp[j]=dp[j-1]+num[j];
26             for(i=j+1; i<=n-m+j; i++)
27              {
28                  oldN=dp[i];// 記錄 dp[i-1][pos^1] 
29          dp[i]=max(maxN, dp[i-1])+num[i]  ;// dp[j][pos] = dp[j-1][pos^1] + num[j] 
30          maxN=max(oldN, maxN);
31              }
32          }
33       __int64 sum=-99999999;
34       for(i=m; i<=n; ++i)
35          if(dp[i]>sum)
36             sum=dp[i];
37       printf("%I64d\n", sum) ;
38    }
39    return 0;
40 } 
 

?

 

?

?

轉載于:https://www.cnblogs.com/hujunzheng/p/3875513.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531851.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531851.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531851.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html盒子模型頁面居中,【靜態頁面架構】CSS之盒子模型

CSS架構盒子模型&#xff1b;以內容區(顯示文本和圖像)內邊距(內容區至邊距的距離)邊距(內容區的邊界)外邊距(元素的邊框之間的距離)1.邊距&#xff1b;border屬性&#xff1b;簡寫屬性用來設置邊距的上(top)右(right)下(bottom)左(left)。寬度&#xff0c;顏色和樣式div{width…

最強動畫制作人書包_聲優訪談丨戀與制作人動畫中配聲優訪談——夏磊

親愛的制作人們&#xff1a;距離戀與制作人動畫上線還有6天&#xff01;今天的中配聲優訪談嘉賓是在動畫中為許墨獻聲的夏磊老師~固定布局 工具條上設置固定寬高背景可以設置被包含可以完美對齊背景圖和文字以及制作自…

(單例設計模式中)懶漢式與餓漢式在多線程中的不同

/*目的&#xff1a;分析一下單例設計模式中&#xff0c;懶漢式與餓漢式在多線程中的不同&#xff01;開發時我們一般選擇餓漢式&#xff0c;因為它簡單明了&#xff0c;多線程中不會出現安全問題&#xff01;而餓漢式需要我們自己處理程序中存在的安全隱患&#xff0c;但是餓漢…

shiro修改html不生效,shiro中anon配置不生效

再配置shiro的時候&#xff0c;如下代碼要注意&#xff1a;1、下述代碼中必須是LinkedHashMap 而不能是HashMap。2、anon定義必須在authc之前否則anon定義不生效Beanpublic ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager){ShiroFilterFactor…

codesys com庫_CoDeSys官方系統庫在線下載,替換國內下載服務器教程

歡迎加入工控分享技術服務社區推薦閱讀Codesys學習資料大全Codesys控制器關于CANopen總線的詳細應用說明當你軟件報以下錯誤&#xff0c;你可以直接下載&#xff0c;如果下載不成功&#xff0c;可以換個網絡試一試&#xff0c;或者進行下面的操作。由于國內網絡問題&#xff0c…

centos7恢復mysql數據庫_MySQL數據庫升級遷移填坑記

原庫&#xff1a;*.*.101.73/74 系統環境: Suse 12.4MySQL: 5.7.29新庫&#xff1a;*.*.110.46/47系統環境&#xff1a;CentOS7.7 64位MySQL版本: 5.7.30[一、數據庫升級遷移場景]因業務側在*.*.101.73/74 mysql數據庫服務器上部署了java應用程序、HadoopHbase數據庫等大數據…

so把asp頁面生成靜態的html,23、asp系列課程--server.URLEncode方法和server.HTMLEncode方法...

作者&#xff1a;楊凡來自&#xff1a;楊凡博客地址&#xff1a;blog.sina.com.cn/aboutshisanserver.URLEncode方法和server.HTMLEncode方法可以對字符串進行編碼。我們一個一個的說。server.URLEncode可以對字符串進行URL編碼轉換&#xff0c;語法格式為&#xff1a;server.u…

poj 1905Expanding Rods

1 /*2 二分 幾何3 弧長L&#xff0c; 圓半徑R&#xff0c; 弧度 q&#xff0c; LR*q;4 二分&#xff1a; 弧度&#xff08;0~PI&#xff09; 或者 高度&#xff08;L/2~L&#xff09; 5 */6 #include<cstdio> 7 #include<iostream>8 #include<cmath>9…

java中同步嵌套引起的死鎖事例代碼

/*目的&#xff1a;自己寫一個由于同步嵌套引起的死鎖&#xff01;思路&#xff1a;多個線程在執行時&#xff0c;某一時刻&#xff0c;0-Thread綁定了LockA鎖&#xff0c;1-Thread綁定了LockB鎖&#xff01;當0-Thread要去綁定LockB鎖時 和 1-Thread要去綁定LockA鎖時都不能綁…

下列關于html5表單的多樣輸入方式,IT兄弟連 HTML5教程 HTML5表單 多樣的輸入類型1...

原標題&#xff1a;IT兄弟連 HTML5教程 HTML5表單 多樣的輸入類型1HTML5擁有多個新的表單輸入類型&#xff0c;這些新特性提供了更好的輸入控制和驗證。并不是所有的主瀏覽器都支持新的input類型&#xff0c;不過我們可以在所有的主瀏覽器中使用它們&#xff0c;即使不被支持&a…

v7000更換電池步驟_ups電源運行中是否可以更換電池?應如何操作呢

ups電源在日常使用中除了日常維護工作之外&#xff0c;對于使用達到一定年限的時候&#xff0c;內部使用的ups蓄電池就需要更換了&#xff0c;很多人以為ups不間段電源在工作的時候是可以跟換電池。其實&#xff0c;這個具體就需要看ups電源設計的原理&#xff0c;不同廠家設計…

poj 2031Building a Space Station(幾何判斷+Kruskal最小生成樹)

1 /*2 最小生成樹 幾何判斷3 Kruskal 球心之間的距離 - 兩個球的半徑 < 0 則說明是覆蓋的&#xff01;此時的距離按照0計算 4 */5 #include<iostream>6 #include<cstdio>7 #include<cstring>8 #include<cmath>9 #include<algorithm>…

華為怎么用手機看時間到讀秒_華為手機滅屏也可以看時間?其實設置方法很簡單,不會有些可惜了...

華為作為手機界名副其實的大佬&#xff0c;而且華為手機的口碑也是非常不錯的。那么為什么會有這么多人喜歡華為手機呢&#xff1f;主要是華為手機的質量高&#xff0c;并且用很多實用的小功能&#xff0c;比如說神奇的滅屏顯示功能等等&#xff0c;今天就給大家分享幾個華為手…

將數據轉化成字符串時:用字符串的鏈接 還是 StringBuilder

/*目的&#xff1a;將數據轉化成字符串時&#xff1a;用字符串的鏈接 還是 StringBuilder呢&#xff1f; */ public class Test{public static void main(String[] args){int[] arr{1,2,4,5};System.out.println(arrayToString(arr));}/* public static String arrayToString(…

html頻譜跳動效果,HTML5音頻可視化頻譜跳動代碼

HTML5音頻可視化頻譜跳動代碼*{margin:0;padding:0;}#canvas {display: block;background: linear-gradient(135deg, rgb(142, 13, 133) 0%, rgb(230, 132, 110) 100%);}window.οnclickfunction () {if(oAudio.paused) {oAudio.play();}else{oAudio.pause();}}//創建音頻上下文…

hive轉16進制unhex_Java 進制的轉換

什么是進制&#xff1f;進制也就是進位計數制&#xff0c;是人為定義的帶進位的計數方法(有不帶進位的計數方法&#xff0c;比如原始的結繩計數法&#xff0c;唱票時常用的“正”字計數法&#xff0c;以及類似的tally mark計數)。 對于任何一種進制---X進制&#xff0c;就表示每…

html中css二級聯動,html二級聯動學習筆記

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">http://www.cnblogs.com/whgw/archive/2012/05/11/2496667.htmlJquery的select操作集合jQuery獲取Select選擇的Text和Value: 語法解釋&#xff1a; 1. $("#select_id").change(function()…

poj 2187 Beauty Contest(凸包求解多節點的之間的最大距離)

1 /* poj 2187 Beauty Contest2 凸包&#xff1a;尋找每兩點之間距離的最大值3 這個最大值一定是在凸包的邊緣上的&#xff01; 4 5 求凸包的算法&#xff1a; Andrew算法&#xff01; 6 */7 #include<iostream> 8 #include<cstdio>9 #include&l…

引入ui組件_Vuejs, Semantic CSS前端框架fish-ui

簡介基于vue2.0, github star 690, 一款小眾的UI框架fish-ui&#xff0c;直接上截圖&#xff1a;主要特性配備Vue.js&#xff0c;Moment&#xff0c;Vue-Router&#xff0c;ES6和Babel 6使用Webpack 2.0和Vue LoaderSemantic CSS 組件使用 Less支持現代瀏覽器快速開發安裝npm i…

html5可以用flash,HTML5網頁可以直接看視頻,不用flash嗎,另外WP7為何不支持flash。。。HTML5網頁...

Android中可以直接使用webView來加載HTML5通過video標簽來播放視頻。以下為基本步驟&#xff1a;一、需要在AndroidManifest.xml文件中聲明需要使用HardwareAccelerate, 可以細化到Activity級別&#xff0c;如果不需要的View可以聲明不要用加速&#xff0c;但是需要在代碼中做具…