From 22e2db73d94e20c9ba00f4af8cb179f4b5e9fbdc Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Fri, 29 Aug 2025 10:14:01 +0800 Subject: [PATCH] =?UTF-8?q?refactor(P4342.cpp):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E8=A7=84=E5=88=92=E5=AE=9E=E7=8E=B0=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构动态规划的实现方式,将原来的双重循环改为基于长度的遍历,提高代码可读性和效率。同时修复了最大值和最小值的计算逻辑,确保正确处理加法和乘法操作。添加结果收集和输出部分,完善程序功能。 --- src/8/28/P4342.cpp | 67 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 56 insertions(+), 11 deletions(-) diff --git a/src/8/28/P4342.cpp b/src/8/28/P4342.cpp index 4c2433e..3e48a76 100644 --- a/src/8/28/P4342.cpp +++ b/src/8/28/P4342.cpp @@ -24,6 +24,7 @@ dpmin[i][j] = 1e9 dp[i][i]=arr[i] */ +#include #include #include #include @@ -51,17 +52,61 @@ int main(){ op[i+n]=op[i]; } std::vector> dpmax,dpmin; - for(ll s=1;s(n21,-1e9)); - dpmin.clear(); - dpmin.resize(n21,std::vector(n21,1e9)); - for(ll i=s;i<=e;i++){ - dpmax[i][i]=op[i][1]; - } - for(ll i=s;i<=e;i++){ - + dpmax.clear(); + dpmax.resize(n21,std::vector(n21,-1e9)); + dpmin.clear(); + dpmin.resize(n21,std::vector(n21,1e9)); + for(ll i=1;i<=2*n;i++){ + dpmax[i][i]=op[i][1]; + dpmin[i][i]=op[i][1]; + } + for(ll len=2;len<=n;len++){ + for(ll i=1;i<=2*n-len;i++){ + ll j=i+len-1; + for(ll k=i;k edgs; + for(ll i=1;i<=n;i++){ + ll nans=dpmax[i][i+n-1]; + if(nans>ans){ + ans=nans; + edgs.clear(); + edgs.push_back(i); + }else if(nans==ans){ + edgs.push_back(i); + } + } + std::cout<