最大収益問題(水題、暴力マトリクス)

1668 ワード


Description
鉄牌犬は最近ゲームに夢中になっているが、鉄牌犬は本当に愚かで、彼はやはりあなたの助けを求めなければならない.
 
n行m列のマトリクスAがあります.マトリクスAの各数字は正の整数です.今、鉄牌犬はr行c列のサブマトリクスBを選択します.このサブマトリクスBの各数字の和は鉄牌犬の得点です.鉄牌犬の最高得点はいくらですか.
 
Input
まず1つのグループ数T(1<=T<=10)を入力し、次にTグループデータを入力することを示す.
まず4つの整数n,m,r,c(1<=n,m<=1000,1<=r<=n,1<=c<=m)を入力する.
 
次のn行は、各行m個の数で、Aの各数字を表す.
マトリクスAの各数字Xは、1<=X<=1000を満たす.
Output
データのセットごとに、答えを表す整数を出力します.
Sample Input
2
4 4 4 4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
4 4 2 2
1 2 3 3
1 2 3 4
3 3 3 4
1 1 5 5

Sample Output
40
17

問題解:n行m列行列を知っていて、そこからr行c列のサブ行列を取って行列内の要素と最大にして、暴力でいいです.
コードは次のとおりです.
 
#include 
#include 
#include 
#include 
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,m,r,c,a[1111][1111],k,l,d=0;
        scanf("%d%d%d%d",&n,&m,&r,&c);
        for(int i=0; i 
#include 
#include 
#include 
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n,m,r,c,a[1111][1111],k,l,d=0;
        scanf("%d%d%d%d",&n,&m,&r,&c);
        for(int i=0; i