PAT(上級レベル)スワップと1067分類(0、I)

問題の解決策

    貪欲。

    それは位置0でない場合には、その要素0の位置を占め、交換にその要素。

    その場所にすると0、0 Exchangeとのホーミングを見つけるためにどの要素がありません。

コード

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
int型 ARR [ 100005 ]。
INT のmain()
{ 
    int型 I、N、X、CNT = 0 
    scanf関数(" %のD "、&N)
    以下のために(私は= 0 ; iが<N; I ++ 
    { 
        scanf関数(" %のD "、&x)は、
        [x]はARR = iは、
    } 
    のためには、式(I = 1、N iが<; I ++ 
    { 
        場合(I =!ARR [I])
        { 
            一方は(ARR [ 0 ]!= 0 
            { 
                スワップ(ARR [ 0 ]、[ARR [ARR 0 ]]); 
                CNT ++ ; 
            } 
            場合(I =!ARR [I])
            { 
                スワップ(ARR [ 0 ]、ARR [I])。
                CNT ++ ; 
            } 
        } 
    } 
    のprintf(" %dの" 、CNT)。
    システム(一時停止)。
    リターン 0 ; 
}

おすすめ

転載: www.cnblogs.com/VividBinGo/p/12222708.html