戦闘戦略MATCHORDER貪欲アルゴリズムの問題

住所  https://algospot.com/judge/problem/read/MATCHORDER

 

天智の馬はソリューションです

最小のコストと時間を打つことができるときだけ少ない相手の最小スコア以上であります

あなたは最低のスコアの勝利を選択することができない場合

コードは以下の通りです

書式#include <iostreamの> 
の#include <ベクトル> 
の#include <アルゴリズム>


使用して 名前空間はstdを、

const  int型 MAX_N = 150 ;

ベクトル < int型 >   ruScore。
ベクトル < int型 >   koScore。
 
整数N、M。


ボイド(解決)
{
    ソート(koScore.begin()、koScore.end());
    INT合計= M。
    INT =開始0 ; int型 winCount = 0 ;
    以下のためにINT iが= 0 ; I <M、I ++ ){
         int型スコア= ruScore [I]。
        ITオート = LOWER_BOUND(koScore.begin()、koScore.begin()+ 合計スコア);
         IF(IT == koScore.end()){
             // より大きいが充填されたまたは最小に等しくない一致を見つけるために
            koScore.erase (koScore.begin())。
            合計 - ;
        }
        他の{
            koScore.erase(それ)。
            winCount ++ ;
            合計 - ;
        }
    }

    coutの << winCount << てendl;
}



int型のmain()
{
    cinを >> N;

    一方、(N-- ){
        cinを >> メートル。
        ruScore.clear();
        koScore.clear();
        以下のためにINT iが= 0 ; I <M、I ++ ){
             int型、T。>> CIN トン。
            ruScore.push_back(T)。
        }
        以下のためにINT iが= 0 ; I <M、I ++ ){
             int型、T。>> CIN トン。
            koScore.push_back(T)。
        }

        解決する();
    }

    リターン 0 ;
}

 

おすすめ

転載: www.cnblogs.com/itdef/p/12104036.html