総旅客ニンニク - 。A1603星

私は実際に行うものの、2次元差分理論は、非常に単純であるときの質問の束

1つ星の境界は、減算時に前方に移動する必要が含まれて

2.私は、ゼロから始めて、サイクルタイムは非常に不便です

常に混乱3.x1、X2、Y1、Y2

書式#include <cstdioを>
 使用して 名前空間はstdを、
const  int型 N = 2001 ;
INT 和[N] [N]。
int型のmain(){
     int型、nは
    scanf関数(" %のD "、&N)
    以下のためにINT iが= 0 ; I <N; I ++ ){
         int型のX、Y、W。
        scanf関数(" %D%D%D "、およびX&Y、&W)。
        和[X] [Y] + = W。
    }
    以下のためにINT iが= 1 ; I <Nを; iが++ ){
        和[I] [ 0 ] =和[I] [ 0 ] +和[I - 1 ] [ 0 ]。
        和[ 0 ] [I] =合計[ 0 ] [I] +和[ 0 ] [I - 1 ]。
    }

    以下のためにINT iは= 1 ; I <N; I ++ のためのINT J = 1、J <N; J ++ 
            和[I] [J] =和[I] [J] +和[I - 1 ] [J] +和[I]、[J - 1 ] -和[I - 1 ] [J - 1 ]。
    int型Q;
    scanf関数(" %のD "、&Q)。
    一方、(q-- ){
         int型X1、Y1、X2、Y2。
        scanf関数(" %D%D%D%D "、&​​X1、Y1、X2&&&Y2)。
        int型ANS;
        もし(X1> 0 && Y1> 0 
            ANS =和[X2] [Y2] -和[X2] [Y1 - 1 ] -和[X1 - 1 ] [Y2] +和[X1 - 1 ] [Y1 - 1 ]。
        それ以外の 場合(X1 == 0 && Y1!= 0 
            ANS =和[X2] [Y2] -和[X2] [Y1 - 1 ]。
        それ以外の 場合(X1> 0 
            ANS =和[X2] [Y2] -和[X1 - 1 ] [Y2]。
        他の
            ANS = 合計[X2] [Y2]。
        printf(" %dの\ n " 、ANS)。
    }
    リターン 0 ;
}

 

おすすめ

転載: www.cnblogs.com/cminus/p/11973150.html