最佳旅游线路
題目描述
某旅游區的街道成網格狀。其中東西向的街道都是旅游街,南北向的街道都是林陰道。由于游客眾多,旅游街被規定為單行道,游客在旅游街上只能從西向東走,在林陰道上則既可從南向北走,也可以從北向南走。
阿龍想到這個旅游街游玩,他的好友阿福給了他一些建議,用分值表示所有旅游街相鄰兩個路口之見的街道值得游覽的程度,分值是從-100到100的整數,所有林陰道不打分。所有分值不可能全是負分。如圖:
輸入輸出格式
輸入格式:
輸入文件的第一行是兩個整數m和n,之間用一個空格隔開,m表示有m條旅游街(1≤m≤100 ),n 表示有(n+1)條林陰道(1≤n≤20001 )。接下來的m行依次給出了由北向南每條旅游街的分值信息。每行有n個整數,依次表示了自西向東旅游街每一小段的分值。同一行相鄰兩個數之間用一個空格隔開。
輸出格式:
輸出文件只有一行,是一個整數,表示你的程序找到的最佳游覽線路的總分值。
輸入輸出樣例
輸入樣例#1:
3 5
-50 -47 36 -30 -23
17 -19 -34 -13 -8
-42 -3 -43 34 -45
輸出樣例#1:
84
.
.
.
.
.
.
分析
找出每列最大值,再求最大子段和……
.
.
.
.
.
.
.
.
程序:
var n,m,i,j,k,max:longint; a:array[0..20001]of longint; beginreadln(n,m);for i:=1 to m doa[i]:=-maxlongint;for i:=1 to n dofor j:=1 to m dobeginread(k);if k>a[j] then a[j]:=k;end;k:=0;max:=-maxlongint;for i:=1 to m dobeginif a[i]+k<0 then k:=0 else k:=k+a[i];if k>max then max:=k;end;writeln(max); end.轉載于:https://www.cnblogs.com/YYC-0304/p/9499967.html
總結
- 上一篇: 村村通
- 下一篇: Mzc和男家丁的游戏