基礎 相加之和最大,並給出它們的起始位置

2021-09-10 23:18:11 字數 770 閱讀 8549

這是乙個環的問題,題意也是比較明了的,找到相鄰的4個數,讓他們相加的和最大,並給出他們的起始位置。

當我們看到資料量時,發現n最大才大到20,所以我們就可以用暴力搜尋來解決。

ps.當資料量很大時,需要用動態規劃,但這裡不用。

讀入n和a陣列,再用巢狀的for迴圈,

i迴圈n個數開頭注:

記得把s

清零。

j迴圈i到i加上3的那4個數

判斷:如果j現在小於等於n,就把a[j]的數加到s裡去

如果j大於n,那s要加的就是a[j-n]了

j迴圈結束後,判斷現在的s有沒有大於現在的最大值max

如果大於,不但要把s的值存起來,現在的起始位置i也得賦值出來。

最後,要先輸出最大值,再輸出起始位置。

vara:array[1..10000]of longint;

n,i,j,s,max,k:longint;

begin

readln(n);

for i:=1 to n do read(a[i]);

for i:=1 to n do

begin

s:=0;

for j:=i to i+3 do

if j<=n then inc(s,a[j])

else inc(s,a[j-n]);

if s>max then  begin k:=i;max:=s;end;

end;

writeln(max);

writeln(k);

end.

異或的路徑 n個數字兩兩異或相加之和

給一棵 n 個點的樹,1 號節點為根,邊有邊權,令 f u,v 表示 u 節點到 v 節點,路徑上邊權異或值。求 第一行乙個整數 n n 100000 接下來 n 1 行,第 i 行輸入兩個整數,p i p i i v i 100000 v i 1 分別表示 i 1號節點的父親,以及 i 1 與 p...

兩數之和 兩樹相加

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9...

T SQL字串相加之後被截斷的那點事

原文 t sql字串相加之後被截斷的那點事 本文出處 字串自身相加,雖然賦值給了varchar max 型別的變數,在某些特殊情況下仍然會被 截斷 這到底是varchar max 長度的問題還是操作的問題?1,兩個不超過8000長度的字串自身相加,其結果長度超過8000之後會被截斷 不多說,直接上例...