제출 #332782

#제출 시각아이디문제언어결과실행 시간메모리
332782nandonathanielK개의 묶음 (IZhO14_blocks)C++14
53 / 100
1084 ms4588 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN=100005,MAXK=105; int dp[MAXN][MAXK]; int a[MAXN]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int N,K; cin >> N >> K; for(int i=1;i<=N;i++)cin >> a[i]; for(int i=1;i<=N;i++)dp[i][1]=max(dp[i-1][1],a[i]); for(int i=1;i<=N;i++){ for(int j=2;j<=min(i,K);j++){ dp[i][j]=1e9; int maxi=a[i]; for(int k=i-1;k>=0;k--){ if(k>=j-1)dp[i][j]=min(dp[i][j],dp[k][j-1]+maxi); maxi=max(maxi,a[k]); } // cout << i << " " << j << " " << dp[i][j] << endl; } } cout << dp[N][K] << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...