不是很难,dp[i]表示到位置i的最小花费

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn 2005
struct Node {int pos,w;}p[maxn];
struct Seg {int l,r;}seg[maxn];
int n,m,a,f[maxn];
ll dp[maxn];
int cmp(Node a,Node b){return a.pos<b.pos;}int main(){cin>>a>>n>>m;for(int i=1;i<=n;i++){cin>>seg[i].l>>seg[i].r;for(int k=seg[i].l+1;k<=seg[i].r;k++)f[k]=1;}for(int i=1;i<=m;i++)cin>>p[i].pos>>p[i].w,p[i].pos++;sort(p+1,p+1+m,cmp);int first=0x3f3f3f3f,last=0;for(int i=a;i>=1;i--)if(f[i]){first=min(first,i);last=max(last,i);}if(first<p[1].pos){puts("-1");return 0;}for(int i=1;i<=m;i++){int s;for(s=p[i].pos-1;s>=1;s--)if(f[s])break;    for(int j=p[i].pos;j<=last;j++)if(dp[j]==0)dp[j]=dp[s]+(j-p[i].pos+1)*p[i].w;else dp[j]=min(dp[j],dp[s]+(j-p[i].pos+1)*p[i].w);}cout<<dp[last]<<'\n';
}

转载于:https://www.cnblogs.com/zsben991126/p/11163045.html

线性dp——cf988F相关推荐

  1. 0x51.动态规划 - 线性DP(习题详解 × 10)

    目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...

  2. UVA11584 划分成回文串 Partitioning by Palindromes(线性DP划分+DP判断回文串)

    整理的算法模板合集: ACM模板 依旧是线性DP 我们使用闫氏DP分析法 总体DP转移的时间复杂度为O(n2)O(n^2)O(n2). 但是这里牵扯到判断 i\tt ii 到 j\tt jj 是否为回 ...

  3. 洛谷P2401 不等数列(线性DP)

    本题使用的是线性DP.就是DP数组难以思考,这里我直接给出 dp[i][j]:表示 1 ~ i 这 i 个数 , 其中j 个 " < " 有几种方法 假设我们已经把 n - ...

  4. CodeForces - 1096D Easy Problem(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串,每个字符都有一个权值,现在需要删除权值和最少的字符,满足字符串中不再含有子序列"hard" 题目分析:线性dp,但我不会,看着题解写的 ...

  5. CodeForces - 456C Boredom(线性dp)

    题目链接:点击查看 题目大意:给出一个由n个数字组成的数列,现在给出规则是,每次选择数列中的一种数字 x,选择后的贡献为 x,不过操作后会删除掉所有数值为 x + 1 和 x - 1 的数,现在问如何 ...

  6. POJ - 1050 To the Max(最大连续子段和,线性dp)

    题目链接:点击查看 题目大意:给出一个n*n的矩阵,每个点都有一个权值,现在要从中选取一个子矩阵要求权值和最大,问这个最大权值和是多少 题目分析:因为是要求子矩阵的权值和最大的问题,我们可以直接维护一 ...

  7. 牛客 - 「火」皇家烈焰(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串表示扫雷游戏,其中: 0:这个格子没有烈焰,且其左右两个格子均没有烈焰 1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰 2:这个格子没有烈焰,且其左右 ...

  8. CH 5102 Mobile Service(线性DP)

    CH 5102 Mobile Service \(solution:\) 这道题很容易想到DP,因为题目里已经说了要按顺序完成这些请求.所以我们可以线性DP,但是这一题的状态不是很好设,因为数据范围有 ...

  9. 动态规划 —— 线性 DP

    [概述] 线性动态规划,是较常见的一类动态规划问题,其是在线性结构上进行状态转移,这类问题不像背包问题.区间DP等有固定的模板. 线性动态规划的目标函数为特定变量的线性函数,约束是这些变量的线性不等式 ...

最新文章

  1. xpath选择器简介及如何使用
  2. android dslr控制软件,DSLR Controller
  3. Linux DNS服务的搭建
  4. php引用类失败,php – 致命错误:调用未定义的方法stdClass
  5. Oracle数据库之多行函数
  6. python里面的pip是什么意思_Python-pip和conda有什么区别?
  7. while listening lectures
  8. Android开发学习之路-环境搭建
  9. JAVA-抽象类/类继承
  10. 报错 之 ModuleNotFoundError: No module named ‘setproctitle‘
  11. PADS中Layer25层的作用(Z)
  12. 2.AsyncQueryHandler、内容提供者
  13. Java爬坑 -- 解决redis序列化java8 LocalDateTime错误的问题
  14. Spring REST实践之HATEOAS
  15. juc包下四大并发工具
  16. 手机电子名片html,利用JavaScript的AngularJS库制作电子名片的方法
  17. 图像压缩算法python_Python基于opencv的图像压缩算法实例分析
  18. 矩阵标准型的系数是特征值吗_21、二次型、合同关系、惯性指数、标准型、规范型,XTAX...
  19. 解决Mac电脑连不上wifi的问题
  20. 虚拟机网络适配器下的3种网络模式(主机模式、桥接模式和NAT模式)

热门文章

  1. (Portal 开发读书笔记)PortletFileUpload
  2. 动态库在不同操作系统中的不同意义
  3. Distributed Representations of Sentences and Documents
  4. 蓝牙技术联盟宣布开放蓝牙网关架构 IoT设备无须Wi-Fi即可联网
  5. asp.net mvc 前台使用后台变量
  6. Linux分区空间不足了怎么办??
  7. HTMLElement对象
  8. 升级ipython_Linux服务器python升级
  9. 符号标志位.进位标志位_功能标志的成本是多少?
  10. opensource项目_最佳Opensource.com:编程