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 ]相关推荐

  1. 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 ...

  2. 动态规划训练23 [Making the Grade POJ - 3666 ]

    Making the Grade POJ - 3666 这道题目有点意思. 我们定义dp[i][j]表示的含义是把包含前i个元素的子序列变成非递减的子序列,并且最后一个元素变成j所需要耗费的最小代价 ...

  3. 动态规划训练19、最短路 [Help Jimmy POJ - 1661 ]

    Help Jimmy POJ - 1661 题意:大致是一个人从某个点开始下落,下落的速度是1m/s,然后在平台上的时候可以左右移动,移动的速度也是1m/s,但是这里有一个限制,就是说每次下落的距离不 ...

  4. 动态规划训练20 [Treats for the Cows POJ - 3186 ]

    Treats for the Cows POJ - 3186 简单的区间DP,就不解释了. #include<iostream> #include<cstdio> using ...

  5. 动态规划训练9 [Brackets POJ - 2955 ]

    Brackets POJ - 2955 再明显不过的区间DP的题目了,要求求出给出符号式中最大匹配的括号数. 考虑区间[l,r],如果str[l]与str[r]匹配了,那么转移方程为dp[l][r] ...

  6. 【POJ - 3616】Milking Time (贪心+dp)

    题干: Bessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity tha ...

  7. POJ 3616 Milking Time (字符串DP)

    题意:找元素关于对角线左或右对称的最大矩阵 思路:左右对角线只需要遍历一条就可以了.只要当前点往上遍历和往后遍历一样就可以. 1 #include<iostream> 2 #include ...

  8. POJ 3616 Milking Time

    解题思路: dp[i]:选择第i个区间获得最大值 1.只在第i个区间取奶 dp[i]=node[i].val; 2.如果能在前面已经取奶的后面接着取奶 node[j].ed+R<=node[i] ...

  9. 动态规划训练13 [Catch That Cow poj3278]

    Catch That Cow POJ - 3278 这道题我看大家用的方法都是bfs搜索,为什么在我看来这就是一个动态规划的题目啊啊啊啊啊啊啊 dp[x]表示从N出发到x所需要的最小时间 那么得到如下 ...

最新文章

  1. 万众期待的kintone开发账号免费开放申请啦!
  2. matlab根据结构体数组,用邻接矩阵和序遍历创建树形结构:
  3. background-position减少小图片的连接数
  4. 垂直梯形校正画质损失多少_全面了解投影梯形校正,切不可滥用!
  5. 2017提高组D1T1 洛谷P3951 小凯的疑惑
  6. 东方韵味传统迎接新年|旭日东升的吉利日出好运插画素材模板
  7. 查询目标服务器系统,查看目标服务器的操作系统
  8. jQuery 异步上传插件 Uploadify 使用 (Java平台)
  9. 微服务学习之Eureka注册中心集群环境构建【Hoxton.SR1版】
  10. FastJson最新.jar下载
  11. android qq下载路径,手机qq下载的文件在哪个文件夹 查找路径解答
  12. Linux AHCI驱动分析之块设备层
  13. 3.5 菜鸟无畏——《逆袭大学》连载
  14. 【狂神说Java】SpringBoot最新教程IDEA版通俗易懂
  15. 告别手敲template,自动生成基础模板(Vue)
  16. java 将服务器的图片打包下载成.zip ,通过浏览器下载。
  17. 深度学习方法实现红外图片中人物动作识别
  18. 原来射极跟随器还有这个应用
  19. 9种常见的INTERNET接入方式
  20. 计算机语言的发明者,Lisp语言发明者、“人工智能之父” John McCarthy与世长辞

热门文章

  1. linux定时关机命令_win10电脑定时关机命令
  2. leetcode-345-翻转字符串中的元音字母
  3. idea报错Class not found (在target中没有生成对应的class文件)
  4. 7-3 棋盘覆盖 (10 分)(思路加详解)Come baby
  5. [蓝桥杯2019初赛]修改数组-并查集
  6. G - 水陆距离 HihoCoder - 1478(广搜+队列先进先出性质)
  7. Millenium Leapcow POJ - 2111 (千禧年跳牛)(贪心找最长路径,记忆化)
  8. Docker基本组成 和 基本命令
  9. 数据结构---Kruskal最小生成树
  10. /usr/lib/sudo/sudoers.so must be only be writable by owner