題目連結: https://zerojudge.tw/ShowProblem?problemid=a694

# 內容

有 n * n 個食物在你面前排成一個方陣,每個食物有它的飽足度,你想知道把其中一塊通通吃掉會獲得多少飽足度

# 輸入

多組測資以 EOF 結束

每組測資開始有兩個正整數 n,m (n<=500, m<=100000)

接下來 n 行有 n 個不超過 100 的正整數依序代表每個食物的飽足度

接下來 m 行每行有四個數字 x1,y1,x2,y2 (1 <= x1 <= x2 <= n, 1 <= y1 <= y2 <= n)

代表你想要吃掉食物的範圍

# 輸出

對每組測資輸出 m 行,代表總飽足度

# 解題思路

先輸入好表格,再把範圍內的結果都加起來。記得開 IO 加速喔

# 程式碼

#include <iostream>
using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int n,m;
    while(cin>>n>>m){
        int arr[n+1][n+1];
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++)
                cin>>arr[i][j];
        }
        int x1,x2,y1,y2;
        for(int i=0;i<m;i++){
            int sum=0;
            cin>>x1>>y1>>x2>>y2;
            for(int i=x1;i<=x2;i++){
                for(int j=y1;j<=y2;j++)
                    sum+=arr[i][j];
            }
            cout<<sum<<endl;
        }
    }
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay