这道题和前面的分组的题有点像
就是枚举最后一组的长度。
然后组数可以在第一层循环也可以在第二层循环
我自己的话就统一一下在第一层循环吧

然后这道题题意我一直没理解清楚,浪费了很多时间,写复杂了

同时初始化的问题很重要。
f[i][j]为前i格j个人分配的最大值
f[0][0] = 0,其他为负无穷
因为这道题很严格,有些状态是不存在的(比如前5格分配6个人),这个时候就要设负无穷表示不存在
这个要注意

然后一开始我走进了一个坑

一开始我加了

REP(i, 0, k + 1) f[0][i] = 0;
REP(i, 0, m + 1) f[i][0] = 0;

然后WA
这样算出来的答案的人数可以少于k个人
而题目说的是必须k个人
我这样设f[0][i] = 0,往后推的话会少掉一些人(自己体会)
所以初始化千万要注意,不要乱设为0

#include<cstdio>
#include<algorithm>
#include<cstring>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std;const int MAXN = 112;
int f[MAXN][MAXN], sum[MAXN][MAXN], n, m, k;
struct node
{int l, r, v;
}a[MAXN];int main()
{scanf("%d%d", &m, &n);REP(i, 1, n + 1) scanf("%d%d%d", &a[i].l, &a[i].r, &a[i].v);scanf("%d", &k);REP(i, 1, m + 1)REP(j, i, m + 1)REP(r, 1, n + 1)if(i <= a[r].l && a[r].r <= j)sum[i][j] += a[r].v;memset(f, -63, sizeof(f));f[0][0] = 0;REP(j, 1, k + 1)REP(i, 1, m + 1)REP(r, 1, i + 1)f[i][j] = max(f[i][j], f[r-1][j-1] + sum[r][i]);printf("%d\n", f[m][k]);return 0;
}

转载于:https://www.cnblogs.com/sugewud/p/9819418.html

caioj 1081 动态规划入门(非常规DP5:观光游览)相关推荐

  1. 洛谷P1280 caioj 1085 动态规划入门(非常规DP9:尼克的任务)

    这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...

  2. caioj 1077 动态规划入门(非常规DP1:筷子)

    首先可以看出排序之后,最优解肯定是每一对都相邻才是最优的 那么我们就要找构成最优解的相邻组 设f[i][j]是前i个字符,k对的最小值 如果当前这个筷子不取的话,f[i][j] = f[i-1][j] ...

  3. caioj 1069 动态规划入门(二维一边推2:顺序对齐)(最长公共子序列拓展总结)

    caioj 1068是最长公共子序列裸体,秒过, 就不写博客了 caioj 1069到1071 都是最长公共字序列的拓展,我总结出了一个模型,屡试不爽    (1) 字符串下标从1开始,因为0用来表示 ...

  4. caioj 1063 动态规划入门(一维一边推1:美元和马克)

    这道题一开始我是这么想的 最后的答案肯定是某次的马克换回来的,但这个该怎么确定?? 实际上应该把范围缩小,只看最后一次和倒数第二次之间有什么联系. 可以发现,只有两种可能,最后一天换或者不换.换的话就 ...

  5. caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)

    很容易想到f[i]为前i项的最优价值,但是我一直在纠结如果重量满了该怎么办. 正解有点枚举的味道. 就是枚举当前这辆车与这辆车以前的组合一组,在能组的里面取最优的. 然后要记得初始化,因为有min,所 ...

  6. 【LeetCode】动态规划入门(专项打卡21天合集)

    [LeetCode]动态规划入门(专项打卡21天合集) 下图为证 文章目录 [LeetCode]动态规划入门(专项打卡21天合集) Day1 斐波拉契数 第 N 个泰波那契数 Day2 爬楼梯 使用最 ...

  7. LQ训练营(C++)学习笔记_动态规划入门

    动态规划入门 五.动态规划入门 1.动态介绍 1.1动态规划基本思路 1.2 动态规划基本概念 1.2.1 阶段 1.2.2 状态 1.2.3 决策 1.2.4 状态转移方程 1.2.5 策略 1.3 ...

  8. 动态规划入门之国王的金矿

    最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.net/ ...

  9. 很特别的一个动态规划入门教程

    很特别的一个动态规划入门教程 今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下--- (说明一下,本人非常痛恨教材公式定理漫天飞,实际 ...

最新文章

  1. Android使用ViewPager实现左右循环滑动及轮播效果
  2. Dreamweaver——模板与库
  3. java前言之计算机常识
  4. 汇编中数据处理的基本问题
  5. PhpStorm+Xdebug断点调试环境搭建
  6. 如何将SAP Spartacus的默认home页面替换成login页面 - ProtectedRoutesService
  7. Java JDBC篇1——初识JDBC
  8. pxe安装系统 ip获取错误_聊聊PXE的那点东西
  9. 【Flutter】微信项目实战【01】基本框架搭建
  10. ubuntu14.04LTS 安装后几个基本设置
  11. 学生学籍管理系统页面源代码html_学生管理系统(界面+源代码)
  12. uc/os-II的内存改进与实现TLSF算法的详解,移植实现(三)
  13. java图片自动盖章,一种自动盖章装置的制作方法
  14. mongodb数据库扩展名_MongoDB文件型数据库
  15. 打印机在计算机里被删掉,打印机显示正在删除怎么办 打印机显示正在删除解决办法...
  16. 计算机起始时间1970
  17. 大学计算机专业论文可以抄吗,大学生毕业论文都是抄的吗?清华大学大招:论文抄袭可开除学籍...
  18. JVM_01_类加载子系统
  19. jQurey回车登陆
  20. Base64与Bitmap转换

热门文章

  1. php 更新配置文件
  2. (转载)Manacher'sAlgorithm: O(n)时间求字符串的最长回文子串
  3. CSS3 Transform变形理解与应用
  4. Linux 动态库剖析
  5. [访问系统] C#计算机信息类ComputerInfo (转载)
  6. cvBoundingRect的用法(转)
  7. 重写GridView支持数据筛选和自动排序功能
  8. Uncaught (in promise) Error: timeout of 10000ms exceeded---SpringCloud Alibaba_若依微服务框架改造---工作笔记009
  9. k8s集群资源监控-搭建监控平台(prometheus和grafana)---K8S_Google工作笔记0053
  10. torch将多个tensor张量合并为一个张量,只提高迷你批次的纬度