容易に訓練 - OJのキビ主ゴドフリーを

ハイロード・フレイ

トピックへのリンク:https://code.mi.com/problem/list/view?id=113

比較的暴力このソリューションは、メインは、二つ以上の例弾丸死んだ貝ことに留意すべきです。

#include <iostreamの> 
する#include < ストリング > 
する#include <stdio.hに> 
する#include <アルゴリズム> 
の#include <ベクトル>

使用して 名前空間はstdを、
int型 [ 10001 ];

無効感染(INT I、INT N-){
     BOOLフラグに= falseに;
     のためint型 J = I; J <N-; J ++ ){
         // カートリッジケース2デッド
        IF([J] <= 0続けます
        [J] - = 2 もし([J] <= 0)フラグ= 
    }
    もし(フラグ)
        感染(I + 1 、N)。
}

INT のmain(){
     int型のn = 0、RESが= 0 、T。
    一方、(〜のscanf(" %dの"、&​​T))[N ++] = T。
    ソート( +のN)。
    以下のためにint型 i = 0 ; iは<N; iは++ ){
         場合([i]が> 0 ){
             場合([I]%2 ){
                [I] ++ ;
            }
            RES + = [I] / 2 int型 J = iは+ 1、J <nであり、j ++ ){
                [j]は - = [I]。
            }
        }
        感染(I + 1 、N)。
        しながら、式(I <N && [I + 1 ] <= 0 
            I ++ ;
    }
    coutの << RES << てendl;
    リターン 0 ;
}
コードの表示

 

 

 この抽象は、減算ベースレコードとの中間をインクリメントすることではありません。(長い長い少し良くに、それを考えるだけオープンベースを完成、しかし爆発しませんでした)

#include <iostreamの> 
する#include < ストリング > 
する#include <stdio.hに> 
する#include <アルゴリズム> 
の#include <ベクトル>

使用して 名前空間はstdを、
int型 [ 10001 ];
INT  基地 = 0 


INT のmain(){
     int型のn = 0、RESが= 0 、T。
    一方、(〜のscanf(" %dの"、&T)){
         場合(Tの== 0ブレーク
        [N ++] = T。
    } 
    ソート(A、A + N-);
     のためint型 I = 0、I <N - 、I ++は){
         // ショットジャンプ死が2以上である
        IF([I] - (ベース - 2)<= 0続行;
         // 最初の粉末カートリッジ死んだ個体を、ベース+ 2 = 
        IF([I] - 基本 <= 0){ 基本 + = 2 ; 続ける;}
         IF([I]%2 ){
            [I] ++ ;
        }
        RES + =([I] - 塩基)/ 2 基地 + =([I] - 塩基)+ 2 
    }
    coutの << RES << てendl;
    リターン 0 ;
}
コードの表示

 

おすすめ

転載: www.cnblogs.com/caozicheng1999/p/11701239.html