luogu1018【2000提高】乘积最大(区间dp)
来源:互联网 发布:lol代练接单软件 编辑:程序博客网 时间:2024/06/06 01:16
dp[i][k]表示在1..i切k刀,分成k+1部分的最大乘积。a[i][j]表示s[i…j]这个数。状态数
upd:最新版看这里:传送门
#include <cstdio>#include <cstring>#include <iostream>#define ll long longusing namespace std;int const N=41;int n,m;ll s,a[N][N],dp[N][7];int main(){// freopen("multmax.in","r",stdin);// freopen("multmax.out","w",stdout); scanf("%d%d",&n,&m);scanf("%lld",&s); for(int i=n;i>=1;--i) a[i][i]=s%10,s/=10; for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) a[i][j]=a[i][j-1]*10+a[j][j]; for(int i=1;i<=n;i++) dp[i][0]=a[1][i]; for(int k=1;k<=m;k++)//砍k刀 for(int i=k+1;i<=n;i++)//在前i个砍 for(int j=k;j<i;j++) dp[i][k]=max(dp[i][k],dp[j][k-1]*a[j+1][i]); printf("%lld",dp[n][m]); return 0;}
阅读全文
0 0
- luogu1018【2000提高】乘积最大(区间dp)
- [区间DP]乘积最大
- hrbustoj1212 乘积最大 区间DP
- 乘积最大---区间型dp
- 区间DP——整数划分(使乘积最大)
- Vijos P1347 乘积最大(动态规划,区间DP)
- zjnu 1186 乘积最大(区间DP)
- 乘积最大(DP)
- NOJ 1017 乘积最大 (经典的区间dp)
- nefuoj1204-区间dp&前缀处理-分段乘积最大
- POJ1651 Codevs1017 乘积最大 ---2000年NOIP全国联赛提高组 dp
- [NOIP提高组2000]乘积最大
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- 算法提高 最大乘积
- H5 学习笔记2
- DOM编程-事件(四)
- 【3dsmax】物体冻结与半透明显示
- sql2000备份数据库文件如何还原到sql2008数据库中
- git(七)-远程与github
- luogu1018【2000提高】乘积最大(区间dp)
- DOM编程-事件(五)
- 怎样从数学的角度判断一个数是不是另一个数的指数
- cv::Mat
- 图解后缀表达式的计算过程
- SQL SELECT语句
- [USACO2.4]回家 Bessie Come Home
- 懂点网站交互(2):我们实际上是如何使用web的
- Linux任务进程管理:top、ps