动态规划训练22 [Milking Time POJ - 3616 ]
Milking Time
POJ - 3616
说实话这道题目非常简单,本质上就是 多段有向图的求最大值问题。稍微变化的地方在于这个的的有向边没有那么明显 ,而是需要自己去寻找
如果任务i到任务j之间存在有向边的话,那么一定有这个关系成立,即:i.endtime + R <= j.endtime
对所有满足上面条件的任务之间建立有向边,然后dfs记忆化搜索ok
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;
const int MAX = 1005;
int ishead[MAX];
vector<int> G[MAX];
int N,M,R;
int s[MAX];
int e[MAX];
int v[MAX];
int dp[MAX];
int dfs(int u){if(dp[u]) return dp[u];dp[u] = v[u];for(int i = 0;i < G[u].size();i++){int vs = G[u][i];dp[u] = max(dp[u],dfs(vs) + v[u]);}return dp[u];
}
int main(){scanf("%d%d%d",&N,&M,&R);for(int i = 1;i <= M;i++){int ts,te,tv;scanf("%d%d%d",&ts,&te,&tv);s[i] = ts,e[i] = te,v[i] = tv;}s[0] = e[0] = -R; v[0] = 0;for(int i = 0;i <= M;i++){for(int j = 1;j <= M;j++){if(i == j) continue;if(e[i] + R <= s[j]){G[i].push_back(j);}}}cout<<dfs(0)<<endl;return 0;
}
动态规划训练22 [Milking Time POJ - 3616 ]相关推荐
- J - Milking Time POJ - 3616(dp动态规划)
Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that sh ...
- 动态规划训练23 [Making the Grade POJ - 3666 ]
Making the Grade POJ - 3666 这道题目有点意思. 我们定义dp[i][j]表示的含义是把包含前i个元素的子序列变成非递减的子序列,并且最后一个元素变成j所需要耗费的最小代价 ...
- 动态规划训练19、最短路 [Help Jimmy POJ - 1661 ]
Help Jimmy POJ - 1661 题意:大致是一个人从某个点开始下落,下落的速度是1m/s,然后在平台上的时候可以左右移动,移动的速度也是1m/s,但是这里有一个限制,就是说每次下落的距离不 ...
- 动态规划训练20 [Treats for the Cows POJ - 3186 ]
Treats for the Cows POJ - 3186 简单的区间DP,就不解释了. #include<iostream> #include<cstdio> using ...
- 动态规划训练9 [Brackets POJ - 2955 ]
Brackets POJ - 2955 再明显不过的区间DP的题目了,要求求出给出符号式中最大匹配的括号数. 考虑区间[l,r],如果str[l]与str[r]匹配了,那么转移方程为dp[l][r] ...
- 【POJ - 3616】Milking Time (贪心+dp)
题干: Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity tha ...
- POJ 3616 Milking Time (字符串DP)
题意:找元素关于对角线左或右对称的最大矩阵 思路:左右对角线只需要遍历一条就可以了.只要当前点往上遍历和往后遍历一样就可以. 1 #include<iostream> 2 #include ...
- POJ 3616 Milking Time
解题思路: dp[i]:选择第i个区间获得最大值 1.只在第i个区间取奶 dp[i]=node[i].val; 2.如果能在前面已经取奶的后面接着取奶 node[j].ed+R<=node[i] ...
- 动态规划训练13 [Catch That Cow poj3278]
Catch That Cow POJ - 3278 这道题我看大家用的方法都是bfs搜索,为什么在我看来这就是一个动态规划的题目啊啊啊啊啊啊啊 dp[x]表示从N出发到x所需要的最小时间 那么得到如下 ...
最新文章
- 万众期待的kintone开发账号免费开放申请啦!
- matlab根据结构体数组,用邻接矩阵和序遍历创建树形结构:
- background-position减少小图片的连接数
- 垂直梯形校正画质损失多少_全面了解投影梯形校正,切不可滥用!
- 2017提高组D1T1 洛谷P3951 小凯的疑惑
- 东方韵味传统迎接新年|旭日东升的吉利日出好运插画素材模板
- 查询目标服务器系统,查看目标服务器的操作系统
- jQuery 异步上传插件 Uploadify 使用 (Java平台)
- 微服务学习之Eureka注册中心集群环境构建【Hoxton.SR1版】
- FastJson最新.jar下载
- android qq下载路径,手机qq下载的文件在哪个文件夹 查找路径解答
- Linux AHCI驱动分析之块设备层
- 3.5 菜鸟无畏——《逆袭大学》连载
- 【狂神说Java】SpringBoot最新教程IDEA版通俗易懂
- 告别手敲template,自动生成基础模板(Vue)
- java 将服务器的图片打包下载成.zip ,通过浏览器下载。
- 深度学习方法实现红外图片中人物动作识别
- 原来射极跟随器还有这个应用
- 9种常见的INTERNET接入方式
- 计算机语言的发明者,Lisp语言发明者、“人工智能之父” John McCarthy与世长辞
热门文章
- linux定时关机命令_win10电脑定时关机命令
- leetcode-345-翻转字符串中的元音字母
- idea报错Class not found (在target中没有生成对应的class文件)
- 7-3 棋盘覆盖 (10 分)(思路加详解)Come baby
- [蓝桥杯2019初赛]修改数组-并查集
- G - 水陆距离 HihoCoder - 1478(广搜+队列先进先出性质)
- Millenium Leapcow POJ - 2111 (千禧年跳牛)(贪心找最长路径,记忆化)
- Docker基本组成 和 基本命令
- 数据结构---Kruskal最小生成树
- /usr/lib/sudo/sudoers.so must be only be writable by owner