【动态规划】【记忆化搜索】CODEVS 3415 最小和 CodeVS原创
f(l,r,i)表示第i段截第l位到第r位时,当前已经得到的价格最小值,可以很显然地发现,这个是没有后效性的,因为对之后截得的段都不造成影响。
注意水彩笔数=1的特判。
递归枚举当前段的r求解(∵l是前一段的r+1),因为很多状态重复,所以可以记忆化。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int save[][][],m,n,wei,ans=,len;
const int Base[]={,,,,,,,,,};
int Get_Part(const int &l,const int &r) {return n%Base[wei-l+]/Base[wei-r];}
int f(int sta,int end,int now)
{
if(save[sta][end][now]!=-) return save[sta][end][now];
int res=;
if(now==) res=min(res,Get_Part(sta,end)+f(end+,wei,now-));
else
for(int i=end+;i<=wei-(now-);i++)
res=min(res,Get_Part(sta,end)+f(end+,i,now-));
return save[sta][end][now]=res;
}
int main()
{
scanf("%d%d",&n,&m);
if(m==)
{
printf("%d\n",n);
return ;
} int t=n;
while(t) {wei++; t/=;}
memset(save,-,sizeof(save));
for(int i=;i<=wei-m+;i++)
save[wei-i+][wei][]=Get_Part(wei-i+,wei);
for(int i=;i<=wei-m+;i++)
ans=min(ans,f(,i,m));
printf("%d\n",ans);
return ;
}
【动态规划】【记忆化搜索】CODEVS 3415 最小和 CodeVS原创的更多相关文章
- sicily 1176. Two Ends (Top-down 动态规划+记忆化搜索 v.s. Bottom-up 动态规划)
Description In the two-player game "Two Ends", an even number of cards is laid out in a ro ...
- Codevs_1017_乘积最大_(划分型动态规划/记忆化搜索)
描述 http://codevs.cn/problem/1017/ 给出一个n位数,在数字中间添加k个乘号,使得最终的乘积最大. 1017 乘积最大 2000年NOIP全国联赛普及组NOIP全国联赛提 ...
- Poj-P1088题解【动态规划/记忆化搜索】
本文为原创,转载请注明:http://www.cnblogs.com/kylewilson/ 题目出处: http://poj.org/problem?id=1088 题目描述: 区域由一个二维数组给 ...
- UVA_437_The_Tower_of_the_Babylon_(DAG上动态规划/记忆化搜索)
描述 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- 滑雪---poj1088(动态规划+记忆化搜索)
题目链接:http://poj.org/problem?id=1088 有两种方法 一是按数值大小进行排序,然后按从小到大进行dp即可: #include <iostream> #incl ...
- [NOIP2017] 逛公园 (最短路,动态规划&记忆化搜索)
题目链接 Solution 我只会60分暴力... 正解是 DP. 状态定义: \(f[i][j]\) 代表 \(1\) 到 \(i\) 比最短路长 \(j\) 的方案数. 那么很显然最后答案也就是 ...
- 记忆化搜索 codevs 2241 排序二叉树
codevs 2241 排序二叉树 ★ 输入文件:bstree.in 输出文件:bstree.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 一个边长为n的正三 ...
- 专题1:记忆化搜索/DAG问题/基础动态规划
A OpenJ_Bailian 1088 滑雪 B OpenJ_Bailian 1579 Function Run Fun C HDU 1078 FatMouse and Chee ...
- 动态规划——I 记忆化搜索
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
随机推荐
- JavaScript使用数组拼接字符串性能如何?
传统上,字符串连接一直是js中性能最低的操作之一. view source print? 1 var text="Hello"; 2 text+=" World!&q ...
- hive Illegal Operation state transition from CLOSED to ERROR的处理
异常堆栈如下: 2015-11-24 16:49:11,495 ERROR org.apache.hive.service.cli.operation.Operation: Error running ...
- tomcat work目录
1 用tomcat作web服务器的时候,部署的程序在webApps下,这些程序都是编译后的程序(发布到tomcat的项目里含的类,会被编译成.class后才发布过来,源文件没有发布过来,但这里的 ...
- offset--BUG
offsetWidth所获取的宽度并不是div的实际宽度,它包括div的width.border等. 在JS函数中,可以通过obj.style.width来获取div的实际宽度,但是这种方式style ...
- MySQL 8.0.11 中使用 grant ... identified by 时 error 1064 near 'identified by '密码'' at line 1
(1)问题: 当使用 grant 权限列表 on 数据库 to '用户名'@'访问主机' identified by '密码'; 时会出现"......near 'identifie ...
- Lesson 3
1.关于面向对象的三个重要属性 Encapsulation(封装):无法直接访问类的成员变量,而是通过一些get set方法,间接访问数据域: Polymorphism(多态):静态绑定,动态绑定, ...
- sql注入预防
在我们登陆验证时会发现sql注入的现象. 1.sql注入发生原因 因为如果用户在用户名上输入的是' or 1=1 # 时,我们得到的sql语句是select * from shop_user wher ...
- mysql 单列索引限制
innodb_large_prefix. 这个参数默认值是OFF.当改为ON时,允许列索引最大达到3072. >=5.7.7默认打开 <=5.7.6默认关闭 innodb_large_pr ...
- 可参考的js代码
function addcompanyFinalBalance(){ var currentDate = new Date(); var currentYear = date.getFullYear( ...
- Android之Activity
Activity总结: Activity的顶层View是DecorView,而我们在onCreate函数中通过setContentView设置的View只不过是这个DecorView的一部分罢了.De ...