dp50分求助

P1854 花店橱窗布置

@[小明小红](/user/368346) ``` #include<bits/stdc++.h> using namespace std; #define ll long long ll n,m,mapp[109][109],dp[109][109],last[109][109]; void print(ll x,ll y) { if(last[x][y]==y){ printf("%lld ",y); return;} print(x-1,last[x][y]); printf("%lld ",y); } int main() { memset(dp,-63,sizeof(dp)); cin>>n>>m; for(ll i=1;i<=n;i++) { for(ll j=1;j<=m;j++) { cin>>mapp[i][j]; } } for(int i=1;i<=m-n;i++) dp[1][i]=mapp[1][i],last[1][i]=i; for(ll i=2;i<=n;i++) { for(ll j=i;j<=m+i-n;j++) { for(ll k=1;k<j;k++) { if(dp[i-1][k]>dp[i][j]) { dp[i][j]=dp[i-1][k]; last[i][j]=k; } } dp[i][j]+=mapp[i][j]; } } ll tx=n,ty,ans=0; for(int i=n;i<=m;i++) if(dp[n][i]>ans){ ans=dp[n][i]; ty=i;} printf("%lld\n",ans); print(tx,ty); return 0; } ```
by cannotdp @ 2023-02-25 11:48:42


··· 谢谢大佬
by 小明小红 @ 2023-02-25 11:49:22


|