Codeforcesラウンド#600(ディビジョン2。)C - お菓子食べます

書式#include <iostreamの> 
の#include <アルゴリズム> 
書式#include <CStringの>
 使用して 名前空間をSTD。
typedefの長い 長いLL。
const  int型 MAXN = 2E5 + 5 
[MAXN]をARR llは、DP [MAXN]。
INT メイン(){ 
    LL N、M、和 = 0 
    CIN >> N >> M。
    以下のためにINT iが= 1 ; I <= N; I ++)CIN >> ARR [I]。
    ソート(ARR + 1、ARR + N + 1 )。
    以下のためのint型 I =1 ; I <= N。I ++ ){ 
        合計 + = ARR [I]。
        もし(I <M)DP [I] = 合計。
        他の DP [I] = DP [IM] + 合計。
        coutの << DP [I] << "  " ; 
    } 
    戻り 0 
} 
// DP [1] [1] =和[1] =
 // DP [2] [1] + [2] =和[2] =
 // DP [3] [3] +を=を[2] + [1] * 2 = DP [2] + [3] + [1] = DP [1] +和[3]
 // DP [4] = [4] + [図3は] + [2] * 2 + [1] * 2 = DP [3] + [4] + [2] = DP [2] +和[4]
 // DP [5] = [ 5] + [4] + [3] * 2 + [2] * 2 + [1] * 3 = DP [4] + [5] + [3] + [1] = DP [3] +和[5]

 

 

おすすめ

転載: www.cnblogs.com/QingyuYYYYY/p/11923957.html