CRF検査(半分+接頭辞と2次元)

説明1.1
CRFは王国を持っています。
彼の王国は、矩形であるn個の緯度と経度のm個の領域にまたがる、および経度と各地域の緯度の接合部の面積に
都市がある(つまり、王国Nの合計のCRF?M都市)。
ある朝、彼の万平方メートル大きなベッドからCRF、彼がチェックするために、彼の王国について検査することを決めた
ブラシタイトルの国家計画の彼の実装を。
ニュースが出てきたいくつかの怠惰市長がユニバーサルブラシタイトルCRF発表していないがあるので、様々な市長の全体の王国は、怖がっている
ので、すべての集団市長はCRFが見つからないようにする方法を議論する会議があったが、計画は彼らの怠慢。
彼らは、彼が唯一の都市に正方形の面積を訪れ、CRFは悪い癖を持って知っているが、彼らはまた、より多くの訪問都市ことを知っている
都市は、CRFがより幸せになります。彼が見つかったら、しかし、CRFは、彼の都市が、彼は非常に怒っているだろうという政策を実施し、その後はなかった訪問した
豚にこれらの亡命市長を置きます。
市長は、今の正方形内のすべての都市がいっぱいCRF行ってきたように、最大の正方形の外に探している
人ブラシタイトル計画を。
1.2入力
最初の入力2つの整数を作用nであり; mおよび数は、交差経度・緯度領域王国CRFの数を表します。
各ラインは、m個の整数を有し、次のn行、各整数は、0または1であり、0は都市は、CRFを実装しなかったことを示してもよい
1が実装された、国家のタイトルブラシ計画。
1.3出力
数k、正方形の最大辺の長さを出力します。
サンプル1.4
サンプルサンプル出力が入力
3 3
。1 1 0
。1 1 1
。1 1 1
2
1.5ヒントのための
データの30%を、その1≤を確保するために?N、M?≤30。
データの100%が、Nは、?2000m≤?1≤確保します。


 

問題解決のアイデア:

前半側の中間の長さ、n側左上端点列挙、及び数が0の場合、正方形0,0の辺の長さの中間値に二次元プレフィクスの数をカウントし、左上または列挙に、設定エンドポイント

コードは以下の通りであります:

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
const  int型 N = 2010 ;
INTのN、M。
INT MAPP [N] [N]。
INT CNT [N] [N]。
インラインint型リード(){
     int型のx = 0、F = 1チャー CH = GETCHAR()。
    一方、(CH < ' 0 ' || CH> ' 9 '){ 場合(CH == ' - ')、F = - 1 ; CH = GETCHAR();}
     一方(CH> =' 0 ' && CH <= ' 9 '){X = X * 10 + CH- ' 0 ' ; CH = GETCHAR();}
     戻りのx *のF。
} 
ブール裁判官(INT X){
     ためint型 I = 1 ; I + X - 1 <= N; I ++ のためのINT J = 1、J + X - 1 <= Mであり、j ++ 場合(CNT [I + X- 1 ] [J + X- 1 ] - CNT [I + X - 1 ] [J- 1] - CNT [I- 1 ] [J + X - 1 ] + CNT [I- 1 ] [J- 1 ] == 0リターン 1 リターン 0 ; 
} 
int型のmain(){ 
    freopenは(" inspect.in "" R " 、STDIN)。
    freopenは(" inspect.out "" W " 、STDOUT)。
    scanf関数(" %d個の%のD "、&​​N、&M)。
    以下のために(登録int型 I = 1を; I <= N。私は++ ){
         ため(登録INT J = 1 ; jは<= Mであり、j ++ ){ 
            scanf関数(" %dの" 、MAPP [I] [I])。
            MAPP [I]、[J] ^ = 1 ; 
            CNT [I] [J] =(CNT [I- 1 ] [J] + CNT [I] [J- 1 ] - CNT [I- 1 ] [J- 1 ] + MAPP [I] [J])。      
        } 
    } 
    int型の L = 0、R = 2000 一方、(L < R){
         int型ミッド=((L + R)>> 1)+ 1 もし(裁判官(MID))、L = ミッド;
        他の R =中旬- 1 
    } 
    のprintf(" %d個" 、L)。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/tonyshen/p/11369655.html