接頭二次元レーザ爆弾

オリジナルタイトルリンクします。https://www.acwing.com/problem/content/description/101/

辺の長さを破壊することができる新規なレーザ爆弾R Rの正方形内の全てのターゲットを。

地図上に今あるN N目標、整数西 西、李は、地図上の目標の位置を表し、それぞれが目標値を有するW IのWi。

レーザ爆弾は、衛星測位によってサービスが、それは、その爆発範囲という欠点を有し、すなわち、辺の長さRの正方形の辺はRとでなければならないX Y X、Y軸。

ターゲットが四角いブラストの端に位置している場合、ターゲットが破壊されないであろう。

爆弾を探していると、どのくらいの目標の合計値までの地図上に吹きました。

入力形式

整数入力の正の最初のラインN N及びR&LT R&LTは、正方形の側のオブジェクトの数、およびスペースで区切られた地図データを表します。

次のN N行、入力データの各セットは、データの各セットは三つの整数含むX- I Y IはWはI西、李、Wiは、ターゲットを表すX X座標、Y Y座標値データスペースで区切られています。

出力フォーマット

出力アップ表す正の整数は、マップオブジェクトの合計数の値に爆弾を爆破します。

データ範囲

0 R 1E 9 0 < N 100000 X I Y I 5000 0 W I 1000年 


サンプル入力:

2 1
0 0 1
1 1 1

出力例:

1
求某点的前缀和:

 

 S [i]は[J] = G [I-1]〜[J] + G [I] [J-1] -g [I-1] [J-1] + G [I] [J]。


二维前缀和:

 

 赤色の領域は、着色領域のすべての部分マイナス(マルチカットに起因する)緑色のプラス黄色領域の面積であります



AC代码:
#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
const  int型 MAXN = 5050 ;
int型のN1、R。
INT G [MAXN] [MAXN]。
INT メイン(){ 
    CIN >> N1 >> R。
    INT X、Y、W。
    INT、N = R、M = R。
    INT iは= 0 ; I <N1 I ++ ){ 
        CIN >> X >> Y >> W。
        X ++、Y ++ 
        N = MAX(X、N)。
        M = MAX(Y、M)。
        G [X] [Y] =ワット; 
    } 
    ためINT iが= 1 ; I <= N; I ++ ){
         ためINT J = 1 ; J <= Mであり、j ++ ){ 
            G [I] [J] = G [I- 1 ] [J] + G [I]、[J- 1 ] -g [I- 1 ] [J- 1 ] + G [I] [J]。            
        } 
    } 
    int型 ANS = 0 int型T;
    INT I ++; I <= N I = R {)
         のためのINT J = Rあり、j <= Mであり、j ++ ){ 
            TG = [I] [J] -g [IR]は[J] -g [I] [JR] + G [IR] [JR ]; //カウントが側である(R-1)の正方形でありますそして、無しエッジとして
            ANS = MAX(ANS、T); 
        } 
    } 
    COUT << ANS << ENDL; 
}

 

 

おすすめ

転載: www.cnblogs.com/lipu123/p/12233462.html