Submission #443066

#TimeUsernameProblemLanguageResultExecution timeMemory
443066leakedK blocks (IZhO14_blocks)C++14
0 / 100
1 ms716 KiB
#include <bits/stdc++.h> //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("-O3") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #define vec vector #define sz(x) ( int)x.size() #define m_p make_pair #define f first #define s second #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() using namespace std; typedef long long ll; typedef pair<ll, int> pli; typedef pair<int,ll> pil; typedef pair<int,int> pii; typedef unsigned long long ull; auto rng=bind(uniform_int_distribution<int>(1,1000),mt19937(time(0))); template<class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);} template<class T> bool umin(T &a,const T &b){return (a>b?a=b,1:0);} const int N=1e5+1; const int lg=(int)log2(N)+1; int mx[N][lg],lvl[N]; int dp[N][2]; int get(int l,int r){ int x=lvl[r-l+1]; return max(mx[l][x],mx[r-(1<<x)+1][x]); } void rec(int l,int r,int x,int y){ if(l>r) return; int mid=(l+r)>>1; int js=x; dp[mid][1]=dp[x][0]+get(x+1,mid); for(int i=x;i<=min(mid-1,y);i++){ if(umin(dp[mid][1],dp[i][0]+get(i+1,mid))) js=i; } if(l==r) return; rec(l,mid,x,js);rec(mid+1,r,js,y); } signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,k; cin>>n>>k; for(int i=0;i<n;i++) cin>>mx[i][0]; for(int j=1;j<lg;j++){ for(int i=0;i+(1<<(j-1))<n;i++){ mx[i][j]=max(mx[i][j-1],mx[i+(1<<(j-1))][j-1]); } } for(int i=2;i<N;i++) lvl[i]=lvl[i/2]+1; for(int i=0;i<n;i++){ dp[i][1]=get(0,i); // cout<<dp[i][1]<<' '; } for(int i=1;i<k;i++){ for(int j=0;j<n;j++) swap(dp[j][0],dp[j][1]); rec(0,n-1,0,n-1); } cout<<dp[n-1][1]; return 0; } /* 5 1 2 2 3 3 4 4 5 5 1 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...