思想 : 1 优化:题意是覆盖点,将区间看成 (l,r)转化为( l-1,r) 覆盖区间

2 核心:dp[i]  覆盖从1到i区间的最小花费

        dp[a[i].r]=min (dp[k])+a[i]s;  l-1=<k<=r-1

        (可我总是想着从后到前,从 前到后反而更好理解)

   3  离散区间---使用线段树求区间最值  时间复杂度O(nlogn)

ps (一定忍住不看别人的代码,继续加油)

 #include <bits/stdc++.h>
#define lson l,m,rt*2
#define rson m+1,r,rt*2+1
using namespace std;
typedef long long LL;
struct node {
LL l,r,s;
bool operator < (const node& t) const {
return r<t.r;
}
};
const int N=2e5+;
const int MAX=0x3f3f3f3f;
node a[N];
LL b[N]; int cnt;
int tree[N*];
int n; LL M,E;
LL ans;
inline void pushup (int rt) {
tree[rt]=min (tree[rt*],tree[rt*+]);
}
inline int mapp (LL x) {
return lower_bound(b+,b++cnt,x)-b;
}
void update (int p,int k,int l,int r,int rt) {
if (l==r) {
tree[rt]=min (k,tree[rt]);
return ;
}
int m=(l+r)/;
if (p<=m) update (p,k,lson);
else update (p,k,rson);
pushup(rt);
return ;
}
int query (int L,int R,int l,int r,int rt) {
if (l>=L&&r<=R) return tree[rt];
if (l>R||r<L) return MAX;
int m=(l+r)/;
return min (query(L,R,lson),query(L,R,rson));
}
int main ()
{
while (~scanf ("%d %lld %lld",&n,&M,&E)) {
cnt=;
for (int i=;i<=n;i++) {
scanf ("%lld %lld %lld",&a[i].l,&a[i].r,&a[i].s);
a[i].l--;
b[++cnt]=a[i].l; b[++cnt]=a[i].r;
}
sort (b+,b++cnt); cnt=;
for (int i=;i<=*n;i++)
if (b[i]!=b[cnt])
b[++cnt]=b[i]; if (b[]!=M-||b[cnt]!=E) ans=-;
else {
memset (tree,0x3f,sizeof(tree));
sort (a+,a++n);
update (,,,cnt,);
for (int i=;i<=n;i++) {
int r=mapp(a[i].r);
int l=mapp(a[i].l);
int tmp=query (l,r,,cnt,);
update (r,tmp+a[i].s,,cnt,);
}
ans=query (cnt,cnt,,cnt,);
if (ans==MAX) ans=-;
}
printf("%d\n",ans);
}
return ;
}

xdoj-1324 (区间离散化-线段树求区间最值)的更多相关文章

  1. 2016年湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)

    原题链接 http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1809 Description Bobo has a balanced parenthes ...

  2. hdu 1754 I Hate It (线段树求区间最值)

    HDU1754 I Hate It Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u D ...

  3. 【线段树求区间第一个不大于val的值】Lpl and Energy-saving Lamps

    https://nanti.jisuanke.com/t/30996 线段树维护区间最小值,查询的时候优先向左走,如果左边已经找到了,就不用再往右了. 一个房间装满则把权值标记为INF,模拟一遍,注意 ...

  4. SGU 180 Inversions(离散化 + 线段树求逆序对)

    题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=180 解题报告:一个裸的求逆序对的题,离散化+线段树,也可以用离散化+树状数组.因为 ...

  5. HDU6447 YJJ's Salesman-2018CCPC网络赛-线段树求区间最值+离散化+dp

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面.  1e5个点,问 ...

  6. SPOJ 3267 D-query(离散化+主席树求区间内不同数的个数)

    DQUERY - D-query #sorting #tree English Vietnamese Given a sequence of n numbers a1, a2, ..., an and ...

  7. [Noi2016]区间[离散化+线段树维护+决策单调性]

    4653: [Noi2016]区间 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 621  Solved: 329[Submit][Status][D ...

  8. POJ 2528 Mayor's posters 【区间离散化+线段树区间更新&&查询变形】

    任意门:http://poj.org/problem?id=2528 Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  9. BZOJ4653(区间离散化+线段树+决策单调尺取)

    写得很好的题解 一眼过去很像是:排序,然后从前向后扫,有这个区间时插到树里,过去以后再删除.然后事实也是这样做的…… 具体起来: 1.如果考虑暴力的话,一种想法是枚举左端和右端要选取的区间(如果我们按 ...

随机推荐

  1. VMware如何进入安全模式

    VMware进入安全模式和物理机一样:使光标处于在虚拟机中激活状态,启动系统时不停按F8即可. 安全模式--只加载必要的驱动和进程:在cmd可以看到部份命令不能执行或命令功能不能完全实现. 网络安全模 ...

  2. Eclipse Mars-Ant无法使用jre1.6的问题

    https://www.jianshu.com/p/24b9517d7f43 Eclipse 升级到Mars 4.5.1版本后,老项目使用jdk1.6,通过ant编译jar时,会遇到如下问题: 使用j ...

  3. Win10系列:JavaScript动画2

    "重新定位"动画也是Windows动画库中的动画效果."重新定位"动画的动画效果是指一个或一组元素移动到新的位置时,这些元素不是突然出现在新的位置,而是从一个位 ...

  4. js评分

    js评分    原理:给ele挂载一个自定义属性保存选中的星星数,鼠标经过时,显示所在星数的评价内容,以及给他星星亮起来,鼠标移开时显示的星星数时选择的星星数,没选的话是默认星星数,点击时,将选中的星 ...

  5. 替代iframe

    1.jq中 通过JQuery的load()方法动态加载页面. $( "#result" ).load( "app/test.html" ); 2.vue.rea ...

  6. Values & Reference:值和引用

    var a = 2; var b = a; //b 是 a 的值的一个副本 b++; a; b; var c = [1, 2, 3]; var d = c; // d 是 值[1, 2, 3]的一个引 ...

  7. 【原创】连接数据库MySQL,读取、显示、修改数据

    /* Time: 2017.01.02 —— 2017.01.04 * Author: WJ * Function:连接数据库,从数据库中读取图片并显示(已成功) */ [参考链接] MySQL存入图 ...

  8. MySQL5.6数据库8小时内无请求自动断开连接

    问题: 最近的项目中,发现Mysql数据库在8个小时内,没有请求时,会自动断开连接,这是MySQL服务器的问题.The last packet successfully received from t ...

  9. lnmp 基础设置

    1.设置ci.tp.laravel重写,去掉index.php location / { try_files $uri $uri/ /index.php?$query_string; } 2.开启ph ...

  10. 虚拟机中扩展linux系统存储空间

    reference: https://blog.csdn.net/greenapple_shan/article/details/52799631 https://blog.csdn.net/lyd1 ...