每日程式設計 20170319

2022-08-16 18:12:17 字數 1208 閱讀 4193

題目:在乙個n*n的陣列中尋找所有橫,豎,左上到右下,右上到左下,四種方向的直線連續d個數字的和裡面最大的值

輸入描述:

每個測試輸入包含1個測試用例,第一行包括兩個整數 n 和 d :

3 <= n <= 100

1 <= d <= n

接下來有n行,每行n個數字d:

0 <= d <= 100

輸出描述:

輸出乙個整數,表示找到的和的最大值

輸入例子:

4 287 98 79 61

10 27 95 70

20 64 73 29

71 65 15 0

輸出例子:

193解答:

其實沒啥好分析的,遍歷每乙個數,然後找這個數橫向和縱向的n-1個數的和,找到最大值。

接著找每個數的右下和左下n-1個數的和,求取最大值。

唯一值得注意的就是不要越界。

1 #include 2 #include 

3 #include 4 #include 5

using

namespace

std;

6int max(int a, int b)

7int

n, d, a, answer;

8int rowandcol (const vectorint>> &v, int

ans)

19 ans =max(sumr, max(sumc, ans));

20 sumr = sumc = 0;21

}22}23

return

ans;24}

25int duijiaoxian (const vectorint>> &v, int

ans)

36 ans =max(sum1030, max(sum0130, ans));

37 sum1030 = sum0130 = 0;38

}39}40

return

ans;41}

42int

main() 53}

54 answer =rowandcol(vwai,answer);

55 answer =duijiaoxian(vwai, answer);

56 cout <57 }

每日程式設計 (三十)

題目描述 給定 pushed 和 popped 兩個序列,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 示例 1 輸入 pushed 1,2,3,4,5 popped 4,5,3,2,1 輸出 true 解釋 我們可以按以...

每日程式設計 31

題目描述 有n個房間,現在i號房間裡的人需要被重新分配,分配的規則是這樣的 先讓i號房間裡的人全都出來,接下來按照 i 1,i 2,i 3,的順序依此往這些房間裡放乙個人,n號房間的的下乙個房間是1號房間,直到所有的人都被重新分配。現在告訴你分配完後每個房間的人數以及最後乙個人被分配的房間號x,你需...

每日程式設計(36)

題目描述 矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 ...