POJ1651 Codevs1017 乘积最大 ---2000年NOIP全国联赛提高组 dp
来源:互联网 发布:php 反转字符串 编辑:程序博客网 时间:2024/04/29 20:03
POJ1651
Codevs1017 乘积最大 —2000年NOIP全国联赛提高组
预处理出所有数字组合。
dp[i][k] 表示前 i 个数字已经用了 k 个 乘号。
状态转移方程:dp[i][k] = max(dp[i][k], dp[j][k-1]*mul[j+1][i]);
第i个数字用了k个乘号的状态 可以从 小于i 的j 用了k-1个乘号的状态转移而来。
#include <cstdio>#include <cstring>#include <iostream>#include <cstdlib>using namespace std;#define MAXN (100+10)char s[MAXN];int mul[MAXN][MAXN], dp[MAXN][MAXN];int main(){ int n, K; cin >> n >> K; scanf("%s", s+1); for(int i = 1; i <= n; i ++) { for(int j = i; j <= n; j ++) { for(int k = i; k <= j; k ++) { mul[i][j] *= 10; mul[i][j] += s[k]-'0'; } } } for(int i = 1; i <= n; i ++) dp[i][0] = mul[1][i]; for(int k = 1; k <= K; k ++) for(int i = k+1; i <= n; i ++) for(int j = k; j < i; j ++) // 因为↓ 所以 j < k 无意义 dp[i][k] = max(dp[i][k], dp[j][k-1]*mul[j+1][i]); cout << dp[n][K]; return 0;}
0 0
- POJ1651 Codevs1017 乘积最大 ---2000年NOIP全国联赛提高组 dp
- Codevs 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提高组
- wikioi 1017 乘积最大 (2000年NOIP全国联赛普及组NOIP全国联赛提高组)
- wikioi 1017 乘积最大 (2000年NOIP全国联赛普及组NOIP全国联赛提高组)
- codevs1017 乘积最大(dp)
- 进制转换 2000年NOIP全国联赛提高组
- Codevs 1018 单词接龙 DFS --2000年NOIP全国联赛普及组NOIP全国联赛提高组
- 【CS 3287】货车运输-2013年NOIP全国联赛提高组(最大生成树)
- Codevs 1169 传纸条/1043 方格取数 2008/2000年NOIP全国联赛提高组 多线程dp
- Codves 1044 拦截导弹 ---1999年NOIP全国联赛提高组 dp(n2 || nlogn)
- Codevs 1058 合唱队形 ---2004年NOIP全国联赛提高组 dp
- Codevs1154 能量项链 ——2006年NOIP全国联赛提高组 区间dp
- 火柴排队 2013年NOIP全国联赛提高组
- 借教室 2012年NOIP全国联赛提高组
- 聪明的质监员 2011年NOIP全国联赛提高组
- 加分二叉树 2003年NOIP全国联赛提高组
- 1088 神经网络 2003年NOIP全国联赛提高组
- 1068 乌龟棋 2010年NOIP全国联赛提高组
- 求1-100所有质数的和
- LeetCode 238 Product of Array Except Self (思维)
- 简单的计算器功能
- JS是依照代码顺序执行的,而不是方法体
- Problem 47 Distinct primes factors (分解因子)
- POJ1651 Codevs1017 乘积最大 ---2000年NOIP全国联赛提高组 dp
- Delphi 常用API 函数(好多都没见过)
- javascript笔记
- ubuntu修改root密码,$ sudo passwd root
- SwipeRefreshLayout下拉刷新控件的使用
- 【Redis】Redis在实际项目中的应用
- @noescape @escaping @autoclosure
- c++浮点数值输出
- 计算1-100所有偶数的和