ピットを埋めされずに残っています
T2
1の#include <cstdioを> 2の#include <ベクトル> 3の#include <CStringの> 4の#include <iostreamの> 5の#include <アルゴリズム> 6 の#define Rレジスタ 7 使って 名前空間STD。 8インラインint型リード() 9 { 10 のint F = 1、X = 0。チャー CH = GETCHAR()。 11 一方(CH> ' 9 ' || CH < ' 0 '){ 場合(CH == '- ')、F = - 1 ; CH = GETCHAR();} 12 ながら、(CH <= ' 9 ' && CH> = ' 0 '){X =(x << 3)+(X << 1)+(CH ^ 48)、CH = GETCHAR();} 13 リターンのF *のX。 14 } 15 のconst int型 MAXN = 2005 。 16 int型N、M、Q。 17 CHAR [ 2005 ] [ 2005 ]。 18 INT S [ 2005 ] [ 2005]、B [ 2005 ] [ 2005 ]、RB [ 2005 ] [ 2005 ]、CB [ 2005 ] [ 2005 ]; // S [I]、[J]、B [I]、[J](i、j)のからの左上の点、エッジプレフィックスの数、RB [I] [j]は、i番目の行とj番目の列に 19。 INT メイン() 20は 、{ 21は // freopenは( "データ"、 "R&LT"、STDIN); 22であります N- = READ()、M =読む()、Q = 読む(); 23である ため(R&LT INT I = 1 ; I <= N; ++ I)が 24 scanfの(" %S "、A [I] + 1 ); 25 のための(int型 I =1 ; iは= N <; ++ I) 26 { 27 INT = 0、NWB = 0 。 28 のために(INT J = 1 ; J <= M ++ j)の 29 { 30 、CB [I] [J] = CB [I- 1 ] [J]。 31 RB [I] [J] = RB [I]、[J- 1 ]。 32 であれば([I] [J] == ' 1 ' ){ 33 ++ 。 34 であれば([I- 1 ] [j] == ' 1 '){NWB ++; CB [I] [J] ++ ;} 35 であれば([I]、[J- 1 ] == ' 1 '){NWB ++; RB [I] [J] ++ ;} 36 } 37 S [i]は[J] = S [I- 1 ] [J] + NWS。 38件の B [i]は[J] = bの[I- 1 ] [J] + NWB。 39 } 40 } 41 のための(R INT I = 1 ; I <= Q; ++ I) 42 { 43 のR intは X =読み取る()、yは、read()は=をXX =(読み取り)、yyは= read()は; 44 INT よう = Sは[XX] [YY]を-s [X- 1 ] [YY] - (S [XX] [Y-は1 ] -s [X- 1 ] [Y- 1 ])。 45 INT AB = bの[XX] [YY] -b [X] [YY] - (B [XX] [Y] -b [X] [Y])+(RB [X] [YY] -rb [X ] [Y])+(CB [XX] [Y] - CB [X] [Y])。 46 のprintf(" %d個の\ n "、などの - AB)。 47 } 48 }