From 8f3a0f8984084c79947f3cfd4236dd5305a3995a Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Tue, 26 Aug 2025 16:11:12 +0800 Subject: [PATCH] update --- src/8/26/P5424.cpp | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/8/26/P5424.cpp b/src/8/26/P5424.cpp index d4060c7..7a76f89 100644 --- a/src/8/26/P5424.cpp +++ b/src/8/26/P5424.cpp @@ -3,7 +3,7 @@ dp[i][j] 前i组蛇,用j个网的最小浪费空间 -dp[i][j]=min(dp[i][j],dp[k][j-1]+cnt[k+1][i]) +dp[i][j]=min(dp[i][j],dp[m][j-1]+cnt[m+1][i]) dp[i][j]=1e9 dp[0][0]=0 @@ -12,21 +12,31 @@ dp[0][0]=0 #include #include +#include #include #include #include using ll = int64_t; +#define p2v(dp)do{\ + for(ll i=0;i>n>>k; + ll n,m; + std::cin>>n>>m; + m++; std::vector v(n+1); std::vector> cnt(n+1,std::vector(n+1));//cnt[i][j]=i-j用一个网浪费的空间 - std::vector> dp(n+1,std::vector(k+1, 1e9)); + std::vector> dp(n+1,std::vector(m+1, 1e9)); dp[0][0]=0; for(ll i=1;i<=n;i++){ @@ -36,19 +46,23 @@ int main(){ for(ll j=i;j<=n;j++){ ll nmax = *std::max_element(v.begin()+i,v.begin()+j+1); ll ncnt=0; - for(ll k=i;k<=j;k++){ - ncnt+=nmax-v[k]; + for(ll m=i;m<=j;m++){ + ncnt+=nmax-v[m]; } cnt[i][j]=ncnt; } } + // printf("cnt\n"); + // p2v(cnt); for(ll i=1;i<=n;i++){ dp[i][1]=cnt[1][i]; - for(ll j=2;i<=k;j++){ - for(ll k=1;k