我々はすべて知っているように、サルは直線を歩いていく、そう......プラス2点間の距離は、縦、横軸の間の差との間の差であります
我々はすべて知っているように1、プログラムとしてよくない猿の猿インテリジェンスは、カードをプレイするつもりはありません。
2.工場では、ルートが固定され、最小の植物への最大のものから選択する必要がありますので
3.簡単なシミュレーション:あなたは後に意見を得るために戻ってピック、ピーナッツピックを拾うために戻っていない場合。
#include <ビット/ STDC ++ H.>
使用して 名前空間STD;
int型 M、N-、T、TOT、XはTi、SHであり; // のTi:時間は、現在費やし; SH:今収穫ピーナッツの数(ピンインは"SH"を収穫しました)
構造体ノード{
int型の X、Y、SL; // X:横軸、Y:縦; SL:数ピーナッツ
} HS [ 405 ]; // 構造:田中ピーナッツ植物が格納
BOOL 比較(ノードBノード)
{
戻り、a.sl> b.sl // 構造ソート、<上昇を表す>下降用
}
int型のmain()
{
scanfの(" %D%D%D "、&M、およびN - 、&T)を、// 魂への
ための(int型 I = 。1; I <= M; I ++ )
のための(INT J = 1。 ; J <= N; J ++ )
{
scanfの(" %のD "、およびX); // いくつかの植物ピーナッツ植物、いくつかの空所
IF(X)HS 【++ TOT] .X = I、HS [TOT] .Y = J、HS [TOT]の.sl = X; // ピーナッツが時間行列の浪費を避けるために、記録された場合
} // TOTは、ピーナッツ植物の数を示し、
ソート(HS + 1、TOT + + HS 1、比較); // ピーナッツ複数前方放電
IF(HS [ 1 ]・X +は1 > T){COUT << 0 ; 戻り 0 ;} //また取られていない最大ピーナッツマイニングが収集されない場合は(時間をピッキング、ピーナッツをスキップするX時間、xはバック時間をジャンプすべきである)
他 {たTi = HS [ 1 ] .X + 1 ; SH = HS [ 1 ]の.sl;} // 彼のモデルを採用することができる
ため(int型 I = 2 ; I <= TOT Iが++)// 最初の株を取られた、開始採掘から二行目
のIF(チタン(Ti + ABS(HSを[I] .X-HS [I- 1 ] .X)+ ABS(HS [I] .Y-HS [I- 1 ] .Y)HS + [I] .X + 1)<= T){ // 元の時間+ + +の横軸との間の差は、差動場合路側ジャンプ座標バック時間+ 1期間を選ぶことは、いくつかのスキップピック超えない
TI + = ABS(HS [I ] .X-HS [I-を1 ] .X)+ ABS(HS [I] .Y-HS [I- 1 ]・Y)+ 1 ; // 費やされた時間での電流差+ + =ピッキング+ 1時間の縦軸との間の差の横軸
HS + = SH [I]の.sl; // ピーナッツ腕に隠れる
}
他の BREAK ; // 最も以上への特定の順序は、収集されない場合には貪欲ではなく、収集しませんので、
coutの<< SH ; // 出力スキル
戻り 0 ;
}