ACM-遊玩景點(AC,動態規劃,最大子序列和問題)

來源:互聯網
上載者:User

遊玩景點

Time Limit:1000MS  Memory Limit:65536K
Total Submit:182 Accepted:35

Description

DieIng五一要去旅遊,旅遊區的景點道路分布欣賞景點的道路為東西走向,每條道路有DieIng對它的喜愛值;南北走向為林間小道,供休息用。

由於五一遊客較多,旅遊區規定欣賞景點的道路只能單向行走,自東向西走;林間小道可雙向行走。
DieIng要你幫他設計路線(可以從任意點開始,任意點結束),使得他能玩得最high。(喜愛值的總和最大)

Input

第一行是兩個整數N(0 <= N <= 10) 和M(0 <= M <= 1000000), 代表旅遊區的布局,N*M

接下來N行,每行有M個整數favorite(-100 <= favorite<=100)
N,M==0結束。

Output

輸出DieIng能得到最大的喜愛值總和。

Sample Input

3 45 -4 6 14-2 -48 11 -89 -13 4 80 0

Sample Output

30

Source

GDUT Programming Contest 2009 by longshen

 

 

/*----------------------------------------------------------------------------------大概想法:1、看到的題目的要輸入最大值的時候,第一感覺就是要用DP或者貪心來做,然後再去看看有   沒有最優子結構什麼的,果然有,最後通過的景點最大值必然是以最大值通過前一個景點,   然後什麼獨立子問題的不會分析,先試試用DP。2、在寫遞迴解的時候,突然間覺得這個題目貌似見過。題目的樣本輸出是30,也就是每一列的   最大值加起來。如果用暴力法求解的話,就需要遍曆出每一列的最大值,然後根據逐一相加   求出最大值,這樣做的話估計會逾時。可不可以降低時間複雜度?剛才說到了“其實就是求   出每一列的最大值”,這一句提示了我。我可以求出每一列的最大值,然後將它們放到另外   一個數組中或者覆蓋原數組中該元素的位置,從而構造出一個由列最大值組成的數組,然後   再來看看,這一個問題其實就轉化為求最大子數組之和的問題。   詳細見代碼----------------------------------------------------------------------------------*/#include<stdio.h>#define max(x,y) ((x)>(y) ? (x) : (y))long a[1000004] ;long b[1000004] ;//空間其實也可以最佳化,覆蓋原來的位置int main(void){long N = 0 ;long M = 0 ;long i = 0 ;long j = 0 ;long nFavSum = 0 ;long nTemp = 0 ;long nTotal = 0 ;while(scanf("%ld%ld",&N,&M), (N != 0 && M != 0)){nFavSum = 0 ;nTemp = 0 ;nTotal = 0 ;for(i = 0 ; i < N ; ++i){for(j = 0 ; j < M ; ++j){scanf("%ld",&nTemp) ;if(0 == i){a[nTotal++] = nTemp ;}else if(nTemp > a[j]){a[j] = nTemp ;}}}b[0] = a[0] ;nFavSum = 0 ; for(i = 1 ; i < M ; ++i){b[i] = max(a[i],b[i-1]+a[i]) ;if(nFavSum < b[i]){nFavSum = b[i] ;}}printf("%ld\n",nFavSum) ;}return 0 ;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.