3奇数シーンアルゴリズム(Java実装)

<1>の表面積

N行M列に矩形領域分割のN * Mは長さ1cm(各行の各列の幅は、1センチメートルである)、位置Aiがj列目のi番目の行、jの長辺重畳しました1cmの立方体(1 <= Aijを<= 100 )、 3次元グラフィックスを形成するために、すべてのキューブは、キューブの六面の各々の部分は、別のキューブ、遮蔽されていない部分の総面積をブロックされています3次元グラフィックスの表面積は、固体図形の面積は平方センチメートルの数は?

入力
最初の行は二つの整数NとM.1sN、Ms1000。含ま
そしてN行、iはAJPのの整数を表し、Mの整数、j番目の行を構成する各列

の出力
出力表面積の大きさ。

特殊なケースを入力します。

  2 2

  2 1

  1 1

出力例外:

  20

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

パッケージcom.ymm.core.sanliuling。

インポートjava.util.Scanner; 

パブリッククラスMian5 { 

	パブリック静的無効メイン(文字列[] args){ 
		=新しいスキャナスキャナ(System.in)。
		
		INT N = in.nextInt()。
		INT M = in.nextInt()。
		
		IF(N <= 0 || M <= 0){ 
			System.out.printlnは(0)。
		} 
		
		[] [] =新しいINT [N] [M] int型。
        
        以下のために(INT i = 0; iがNを<; iは++){ 
            ための(int型J = 0であり、j <M、J ++){ 
                [I] [J] = in.nextInt()。
            } 
        } 
		のSystem.out.println(カウント(a)参照)。
       
	} 
	
	プライベート静的int型カウント(INT [] [] ARR){ 
 	   INT [] = RPW新しいINT [] {0,1,0、-1}。
 	   INT [] RDW =新しいINT [] {1,0、-1,0}。
 	   
 	   int型のres = 0; 
 	   
 	   {(; iがarr.lengthを<I ++は、I = 0 INT)のための
 		   ための(INT J = 0; J <ARR [0] .LENGTH; J ++){ 
 			  IF(ARR [I] [J]> 0){ 
 				  RES + = 2; 
 				  以下のために(INT n = 0であり、n <4であり; n ++){ 
 					  int型のNPは=私はRPW [n]を+。
 					  INT ND = J + RDW [N]。
 					  int型のNRE = 0; 
 					  (NP> = 0 && NP <arr.length &&なら
 							  {ND> = 0 && ND <[0] .LENGTHをARR)
 						  のNREの=のARR [NP] [ND]。
 					  } 
 					  RES + = Math.max(ARR [I] [J] -のNRE、0); 
 				  } 
 			  } 
 		   } 
 	   } 
 	   RESを返します。
    } 

}

 

おすすめ

転載: www.cnblogs.com/youdiaodaxue16/p/11361184.html