http://acm.hdu.edu.cn/showproblem.php?pid=4502

题意 :这个是中文题,我就不再详述了。

思路 : 以前做过一个活动区间选择,结果就按着那个思路敲了,后来发现只能保证做足够多的工作,但是无法保证获得的钱最多,才知道是一个动态规划,其实对于我这种菜鸟来说,做动态规划没有什么难不难的,只有找不找的到公式的。。。。。我的代码里dp[h][k]代表的是从第h天干到第k天能赚多少钱,所以存在一个变量h < j < k,就是从第h天干到第 j 天的前一天,再从第 j 天结束后的那天开始干到第 k 天,再加上这 j 天干的得到的工资,应该不难理解。

#include<stdio.h>
#include<stdlib.h>
#include<cstring>
#include<algorithm>
using namespace std ;
struct node
{
int start ;
int end ;
int sac ;
} ch[] ;
int dp[][] ;
int main()
{
int n ;
scanf("%d",&n) ;
for(int i = ; i < n ; i++)
{
int a,b ;
scanf("%d %d",&a,&b) ;
for(int j = ; j < b ; j++)
{
scanf("%d %d %d",&ch[j].start,&ch[j].end,&ch[j].sac);
} memset(dp,,sizeof(dp)) ;
for(int j = ; j < b ; j++)
{
if(ch[j].end <= a){ for(int h = ; h <= ch[j].start ; h++)
for(int k = a ; k >= ch[j].end ; k--)
if(dp[h][k] < dp[h][ch[j].start-]+dp[ch[j].end+][k]+ch[j].sac)
dp[h][k] = dp[h][ch[j].start-]+dp[ch[j].end+][k]+ch[j].sac;
}
}
printf("%d\n",dp[][a]) ;
}
return ;
}

最新文章

  1. UITextView 点击添加文字 光标处于最后方
  2. 【转】 Nginx深入详解之多进程网络模型
  3. Azure SQL Database (1) 用户手册
  4. C# IDisposable接口
  5. javascript之小积累-.-添加form表单查询的enter键支持
  6. 字符编解码的故事(ASCII,ANSI,Unicode,Utf-8区别)
  7. discuz门户首页-header文件模板语法详解和注释
  8. DZ升级到X3.2后,UCenter用户管理中心进不了了
  9. php拦截器(魔术方法)
  10. linux下,FTP服务相关
  11. FusionCharts封装-dataset和categories
  12. C++二分查找算法演示源码
  13. GO语言-基础语法:变量定义
  14. for loop
  15. MySQL keepalived 双主.md
  16. Intellij Idea notes
  17. 留言板(初学者使用js实现)
  18. HDU 4553 约会安排(线段树区间合并+双重标记)
  19. WebService的初级学习
  20. linux目录结构及文件权限

热门文章

  1. 【转】Android属性之build.prop,及property_get/property_set
  2. OC第一天-Xcode、工程组成及运行状态
  3. Jquery 自定义事件实现发布/订阅
  4. strlen() 和 strcpy()函数
  5. 最小化Spring XML配置
  6. python 函数应用
  7. Hash function
  8. 在Spring中使用cache(EhCache的对象缓存和页面缓存)
  9. 手机网站中 限制图片宽度 JS图片等比例缩放
  10. Scrapy简介