1821:【00NOIP提高组】乘积最大
//dp QAQ #include<bits/stdc++.h> using namespace std; long long a[11][11],f[11][11]; long long s; int main() { int n,K,p,i,j,k; cin>>n>>K; cin>>s; for(i=n;i>=1;i--) { a[i][i]=s%10; s/=10; } for(i=2;i<=n;i++) for(j=i-1;j>=1;j--) a[j][i]=a[j][i-1]*10+a[i][i]; for(i=1;i<=n;i++) f[i][0]=a[1][i]; for(k=1;k<=K;k++)//先枚举阶段 { for(i=k+1;i<=n;i++)//状态(阶段变量,我也不知道是啥) for(j=k;j<i;j++)//决策,即断点。这些都是一个一天到晚看电脑皮肤贼差的dalao告诉我的我自己也不知道我打的是啥 f[i][k]=max(f[i][k],f[j][k-1]*a[j+1][i]); } cout<<f[n][K]; return 0; }
本文作者:Gold_stein
本文链接:https://www.cnblogs.com/smartljy/p/11716111.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步