吉哥系列故事——临时工计划

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 2159    Accepted Submission(s): 807

Problem Description
俗话说一分钱难倒英雄汉,高中几年下来,吉哥已经深深明白了这个道理,因此,新年开始存储一年的个人资金已经成了习惯,不过自从大学之后他不好意思再向大人要压岁钱了,只能把唯一的希望放到自己身上。可是由于时间段的特殊性和自己能力的因素,只能找到些零零碎碎的工作,吉哥想知道怎么安排自己的假期才能获得最多的工资。   已知吉哥一共有m天的假期,每天的编号从1到m,一共有n份可以做的工作,每份工作都知道起始时间s,终止时间e和对应的工资c,每份工作的起始和终止时间以天为单位(即天数编号),每份工作必须从起始时间做到终止时间才能得到总工资c,且不能存在时间重叠的工作。比如,第1天起始第2天结束的工作不能和第2天起始,第4天结束的工作一起被选定,因为第2天吉哥只能在一个地方工作。   现在,吉哥想知道怎么安排才能在假期的m天内获得最大的工资数(第m+1天吉哥必须返回学校,m天以后起始或终止的工作是不能完成的)。
Input
第一行是数据的组数T;每组数据的第一行是2个正整数:假期时间m和可做的工作数n;接下来n行分别有3个正整数描述对应的n个工作的起始时间s,终止时间e,总工资c。
[Technical Specification] 1<=T<=1000 9<m<=100 0<n<=1000 s<=100, e<=100, s<=e c<=10000
Output
对于每组数据,输出吉哥可获得的最高工资数。
Sample Input
1 10 5 1 5 100 3 10 10 5 10 100 1 4 2 6 12 266
Sample Output
102
Source
2013腾讯编程马拉松初赛第〇场(3月20日)
Recommend
liuyiding
状态方程:dp[work[i].ed]=max(dp[work[i].ed],dp[work[i].st-1]+work[i].ca);
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;class Work{
public:int st;int ed;int ca;friend bool operator<(const Work &a,const Work &b){if(a.ed!=b.ed)return a.ed<b.ed;elsereturn a.st<b.st;}
};Work work[1010];
int dp[110];int main()
{int t,m,n,i,j;scanf("%d",&t);while(t--){scanf("%d%d",&m,&n);for(i=0;i<n;i++){scanf("%d%d%d",&work[i].st,&work[i].ed,&work[i].ca);if(work[i].st>m||work[i].ed>m){n--;i--;}}memset(dp,0,sizeof(dp));sort(work,work+n);for(i=0,j=1;i<n;i++){while(j<=work[i].ed){dp[j]=dp[j-1];j++;}dp[work[i].ed]=max(dp[work[i].ed],dp[work[i].st-1]+work[i].ca);}for(j--;j<=m;j++){if(!dp[j])dp[j]=dp[j-1];}cout<<dp[m]<<endl;}return 0;
}

转载于:https://www.cnblogs.com/zyh123101/p/3192669.html

hdu 4502 一维dp相关推荐

  1. HDU中一些DP的题目分类

    DP是难点,供自已以后系统学习. 1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包;第一次做的时候把概率当做 ...

  2. 01背包一维dp数组的实现

    二维的01背包模板 #include <iostream> #include <cstdio> #include <cstring>using namespace ...

  3. hdu 4502(DP)

    吉哥系列故事--临时工计划 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  4. HDU - 6578 Blank DP + 滚动数组

    HDU - 6578 Blank 题意 给你\(\{0,1,2, 3\}\)四个数,分别填入长度为\(n\)的数列中,有\(m\)个限制条件,\(l_{i}, r_{i}, x_{i}\)表示在\([ ...

  5. hdu 1520 树形dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 #include<cstdio> #include<cstring> # ...

  6. hdu 4035 可能性DP 成都网络游戏

    http://acm.hdu.edu.cn/showproblem.php?pid=4035 获得: 1.首先推断是不是树.事实上,所有的感觉身影,既看边数==算-1是不成立 2.有时候,我告诉孩子来 ...

  7. HDU 2836 (离散化DP+区间优化)

    Reference:http://www.cnblogs.com/wuyiqi/archive/2012/03/28/2420916.html 题目链接: http://acm.hdu.edu.cn/ ...

  8. hdu 5568(dp+大数模拟)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5568 官方题解: #include <cstdio> #include <cstri ...

  9. hdu 5464(简单dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5464 解题思路: 由于p很小,而ai很大,所以先把ai%p,由于ai可能有负数,所以ai=(ai%p+ ...

最新文章

  1. python工程师薪资-Python工程师工资多少
  2. go设计模式之代理模式
  3. linux 递归删除 空目录命令,使用shell脚本实现递归删除空目录
  4. FFmpeg avio_alloc_context函数剖析
  5. PyTorch-模型
  6. vue.js java php_准吗?Java程序员喜欢AngularJS,PHP程序员喜欢Vue.js!
  7. javascript中的命名规则和方法
  8. Eclipse 插件用法:Eclipse 利用 Amateras UML 生成 Java 类图、时序图和 UML 类图
  9. 面试精讲之面试考点及大厂真题 - 分布式专栏 03 阿里华为资深HR面试套路全揭晓
  10. 视觉SLAM笔记(30) 特征点法
  11. oracle体系结构视频学习笔记
  12. fastdfs windows部署_从零搭建分布式文件系统MinIO比FastDFS要更合适
  13. Mybatis sqlsession解析
  14. IDEA使用有道翻译插件
  15. Python学习2--体脂率计算
  16. 编码器和译码器(数电实验报告)
  17. 【powerBI_001】DAX函数之RELATED和RELATEDTABLE用法
  18. 时间(格林尼治时间/协调世界时/世界时间)
  19. Mysql 数据补位
  20. 《佛密诸事》第十一章:解读大悲咒

热门文章

  1. LeetCode 1570. 两个稀疏向量的点积(哈希)
  2. Pytorch 张量tensor
  3. LeetCode 1686. 石子游戏 VI(贪心)
  4. HTML试题及答案(总结)
  5. python中解决死锁的方法
  6. 训练神经网络时如何确定batch size?
  7. 在Pivotal Web Service上发布Spring Boot应用
  8. Spring Cloud构建微服务架构(七)消息总线
  9. OpenKG 祝大家新春快乐
  10. 论文浅尝 - ICML2020 | 通过关系图上的贝叶斯元学习进行少样本关系提取