caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)
很容易想到f[i]为前i项的最优价值,但是我一直在纠结如果重量满了该怎么办。
正解有点枚举的味道。
就是枚举当前这辆车与这辆车以前的组合一组,在能组的里面取最优的。
然后要记得初始化,因为有min,所以除0外初始化为最大,f[0] = 0
这实际上可以抽象出一种模型,就是一个区间线性分组的模型,都可以用这道题的方法写。
#include<cstdio>
#include<algorithm>
#include<cmath>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std;typedef long long ll;
const int MAXN = 1123;
double v[MAXN], f[MAXN];
int w, len, n;
ll a[MAXN];int main()
{scanf("%d%d%d", &w, &len, &n);REP(i, 1, n + 1){int x, y;scanf("%d%d", &x, &y);a[i] = a[i - 1] + x;v[i] = len / (double)y * 60.0;}f[0] = 0.0;REP(i, 1, n + 1){f[i] = 999999999999999.0; //一定要开很大,否则WA double t = 0;for(int j = i; j >= 1; j--){if(a[i] - a[j - 1] > w) break;t = fmax(t, v[j]);f[i] = fmin(f[i], f[j - 1] + t);}}printf("%.1lf\n", f[n]);return 0;
}
转载于:https://www.cnblogs.com/sugewud/p/9819433.html
caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)相关推荐
- caioj 1063 动态规划入门(一维一边推1:美元和马克)
这道题一开始我是这么想的 最后的答案肯定是某次的马克换回来的,但这个该怎么确定?? 实际上应该把范围缩小,只看最后一次和倒数第二次之间有什么联系. 可以发现,只有两种可能,最后一天换或者不换.换的话就 ...
- caioj 1069 动态规划入门(二维一边推2:顺序对齐)(最长公共子序列拓展总结)
caioj 1068是最长公共子序列裸体,秒过, 就不写博客了 caioj 1069到1071 都是最长公共字序列的拓展,我总结出了一个模型,屡试不爽 (1) 字符串下标从1开始,因为0用来表示 ...
- 洛谷P1280 caioj 1085 动态规划入门(非常规DP9:尼克的任务)
这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...
- caioj 1081 动态规划入门(非常规DP5:观光游览)
这道题和前面的分组的题有点像 就是枚举最后一组的长度. 然后组数可以在第一层循环也可以在第二层循环 我自己的话就统一一下在第一层循环吧 然后这道题题意我一直没理解清楚,浪费了很多时间,写复杂了 同时初 ...
- caioj 1077 动态规划入门(非常规DP1:筷子)
首先可以看出排序之后,最优解肯定是每一对都相邻才是最优的 那么我们就要找构成最优解的相邻组 设f[i][j]是前i个字符,k对的最小值 如果当前这个筷子不取的话,f[i][j] = f[i-1][j] ...
- 动态规划入门到熟悉,看不懂来打我啊
动态规划入门到熟悉,看不懂来打我啊 兔子hebtu666 本文链接:https://blog.csdn.net/hebtu666/article/details/100585136 2.1斐波那契系列 ...
- LQ训练营(C++)学习笔记_动态规划入门
动态规划入门 五.动态规划入门 1.动态介绍 1.1动态规划基本思路 1.2 动态规划基本概念 1.2.1 阶段 1.2.2 状态 1.2.3 决策 1.2.4 状态转移方程 1.2.5 策略 1.3 ...
- 动态规划入门问题:猴子与香蕉
动态规划入门问题猴子与香蕉 一.猴子与香蕉 题目描述 一组研究人员正在设计一个测试猴子IQ的实验.他们把香蕉吊在屋顶上,同时给猴子提供了砖块.如果猴子够聪明,它会把砖块一个个叠起来做成一个塔,然后爬上 ...
- 动态规划入门之国王的金矿
最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.net/ ...
最新文章
- 来啦!机器学习画图神器来啦!
- pandas使用idxmin函数获取dataframe每个数据行中最小值对应的列名称(column label of min value in each row in dataframe)
- 【学术笔记】探索大脑静息态活动中的动态信息
- easyUI的图标设置
- Cygwin复制,粘贴 直接用鼠标在黑框上选区即可,选区结束就已经复制了。cygwin里面Ctrl+V是不能粘贴的,用Shfit+ Insert(键盘上下左右方向键的上面) Cygwin 下切换目
- CDC之CreateCompatibleDC与BitBlt
- python图片保存_python读取和保存图片5种方法对比
- mvc html传参数乱码,SpringMVC Controller 接收页面传递的中文参数出现乱码
- 使用dockerfile自动化构建镜像
- 使用webpack、babel、react、antdesign配置单页面应用开发环境
- java runnable 异常_Java实现多线程异常捕获Runnable的案例
- 重置物体的position, rotation, scale,复制物体的组件
- arm服务器虚拟x86,云服务器arm64和x86
- 打印机怎么设置扫描到计算机,打印扫描一体机怎么扫描_怎样用打印机扫描文件到电脑-win7之家...
- 象棋马走日UML类图
- stm32f7 java_STM32F7开发-安装MDK超详细操作步骤
- 在github上写脚注的方法 markdown
- 蓝色理想:讲解网络端口及其详解的一个好网址
- 重庆生小孩可以领那些钱
- Mysql并发读写解决方案分析--MVCC
热门文章
- gmock学习01---Linux配置gmock
- 《 Python树莓派编程》——第1章 树莓派简介 第1.1 树莓派的历史
- C#学习笔记——读写ini文件
- 1130 - Host ‘win7' is not allowed to connect to this mysql server
- hdu4821 字符串hash(有多少(M*L长的,M个不相同)子串))
- javascript setinterval 正确的语法
- [推荐]番茄工作法——专治拖延症、精神涣散、再要五分钟综合症
- Exchange 2010之接受域
- ocr python opencv_如何使用(opencv/python)来实现OCR处
- 允许多域名跨域 php,php后端控制可跨域的域名,允许图片跨域上传