不是很难,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=;i<=n;i++){
cin>>seg[i].l>>seg[i].r;
for(int k=seg[i].l+;k<=seg[i].r;k++)
f[k]=;
}
for(int i=;i<=m;i++)
cin>>p[i].pos>>p[i].w,p[i].pos++;
sort(p+,p++m,cmp); int first=0x3f3f3f3f,last=;
for(int i=a;i>=;i--)
if(f[i]){
first=min(first,i);
last=max(last,i);
}
if(first<p[].pos){puts("-1");return ;} for(int i=;i<=m;i++){
int s;
for(s=p[i].pos-;s>=;s--)
if(f[s])break;
for(int j=p[i].pos;j<=last;j++)
if(dp[j]==)
dp[j]=dp[s]+(j-p[i].pos+)*p[i].w;
else dp[j]=min(dp[j],dp[s]+(j-p[i].pos+)*p[i].w);
}
cout<<dp[last]<<'\n';
}

线性dp——cf988F的更多相关文章

  1. LightOJ1044 Palindrome Partitioning(区间DP+线性DP)

    问题问的是最少可以把一个字符串分成几段,使每段都是回文串. 一开始想直接区间DP,dp[i][j]表示子串[i,j]的答案,不过字符串长度1000,100W个状态,一个状态从多个状态转移来的,转移的时 ...

  2. Codeforces 176B (线性DP+字符串)

    题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28214 题目大意:源串有如下变形:每次将串切为两半,位置颠倒形成 ...

  3. hdu1712 线性dp

    //Accepted 400 KB 109 ms //dp线性 //dp[i][j]=max(dp[i-1][k]+a[i][j-k]) //在前i门课上花j天得到的最大分数,等于max(在前i-1门 ...

  4. 动态规划——线性dp

    我们在解决一些线性区间上的最优化问题的时候,往往也能够利用到动态规划的思想,这种问题可以叫做线性dp.在这篇文章中,我们将讨论有关线性dp的一些问题. 在有关线性dp问题中,有着几个比较经典而基础的模 ...

  5. POJ 2479-Maximum sum(线性dp)

    Maximum sum Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 33918   Accepted: 10504 Des ...

  6. poj 1050 To the Max(线性dp)

    题目链接:http://poj.org/problem?id=1050 思路分析: 该题目为经典的最大子矩阵和问题,属于线性dp问题:最大子矩阵为最大连续子段和的推广情况,最大连续子段和为一维问题,而 ...

  7. nyoj44 子串和 线性DP

    线性DP经典题. dp[i]表示以i为结尾最大连续和,状态转移方程dp[i] = max (a[i] , dp[i - 1] + a[i]) AC代码: #include<cstdio> ...

  8. 『最大M子段和 线性DP』

    最大M子段和(51nod 1052) Description N个整数组成的序列a[1],a[2],a[3],-,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的.如果M &g ...

  9. 『最长等差数列 线性DP』

    最长等差数列(51nod 1055) Description N个不同的正整数,找出由这些数组成的最长的等差数列. 例如:1 3 5 6 8 9 10 12 13 14 等差子数列包括(仅包括两项的不 ...

随机推荐

  1. robotframework+python3+selenium之web相关关键字---第二集

    1.F5可查看所有关键字,如图: 2.浏览器相关关键字: 2.1  Open Browser    https://www.baidu.com  chrome    # 打开浏览器,rf默认使用火狐浏 ...

  2. leetcood学习笔记-20

    python字符串与列表的相互转换   学习内容: 1.字符串转列表 2.列表转字符串 1. 字符串转列表 str1 = "hi hello world" print(str1.s ...

  3. Cross platform

    值得学习的C/C++语言开源项目 (1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html ...

  4. Vue学习笔记【17】——配置本地数据库和数据接口API

    先解压安装 PHPStudy; 解压安装 Navicat 这个数据库可视化工具,并激活: 打开 Navicat 工具,新建空白数据库,名为 dtcmsdb4; 双击新建的数据库,连接上这个空白数据库, ...

  5. DOM学习总结(四)DOM修改

    DOOM修改 找到标签之后就可以对它进行修改了可以修改:1.改变HTML元素 比如说把 p 改为 span2.改变HTML属性 比如说 id class3.改变CSS样式 比如说改变字体颜色4.添加或 ...

  6. HVM(Hardware-Assisted Virtualization)

    A set of extra instructions is added that can be used by a process in VMX rootmode. These instructio ...

  7. 2019牛客多校第四场C-sequence(单调栈+线段树)

    sequence 题目传送门 解题思路 用单调栈求出每个a[i]作为最小值的最大范围.对于每个a[i],我们都要乘以一个以a[i]为区间内最小值的对应的b的区间和s,如果a[i] > 0,则s要 ...

  8. Zabbix监控搭建

    目录 Zabbix概述        zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案 ( 基于 GPL V2 )zabbix由 2 部分构成,zabbix ...

  9. 牛客练习赛48 D 小w的基站网络

    链接:https://ac.nowcoder.com/acm/contest/923/D来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言52428 ...

  10. html5本地存储(三)--- 本地数据库 indexedDB

    html5内置了2种本地数据库,一是被称为“SQLLite”,可以通过SQL语言来访问文件型SQL数据库.二是被称为“indexedDB” 的NoSQL类型的数据库,本篇主要讲indexedDB数据库 ...