相交区间选尽量少的点是可以贪心的,右端点排序以后,尽量往右边放可以得到可以使得点在区间尽可能多。

但是我只想到了O(n)的维护方法。(数据比较水,能过...

或者是前缀和可以写sum(bi) - sum(ai-1) ≥ ci

再加上前缀和的单调性 sum(i) - sum(i-1) ≥ 0

以及一个点只能选一次 sum(i-1) - sum(i) ≥ -1。

左边具有可加性的,根据对偶性:min ( sum(n) - sum(0) ) ≥ max( c )

右边就是求一个最长路了。

复杂度:O(VE)。

两种复杂度都爆了,还是能过,大力出奇迹。。。

#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<queue>
#include<vector>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<algorithm>
#include<cmath>
#include<numeric>
using namespace std; typedef long long ll; const int maxn = +;
const int maxm = maxn*; int dat[][maxn];
int * const d = dat[]+; int * const hd = dat[]+;
int nx[maxm];
int a[maxn], b[maxm], c[maxm];
int ec; void add_edge(int u, int v, int w)
{
c[ec] = w;
b[ec] = v;
nx[ec] = hd[u];
hd[u] = ec++;
} int n; int q[maxn];
bool inq[maxn]; int spfa(int s, int t)
{
memset(d+s,0xff,sizeof(int)*(t-s+));
int top = ;
q[++top] = s; d[s] = ; inq[s] = true;
while(top){
int u = q[top--];
inq[u] = false;
for(int i = hd[u]; ~i; i = nx[i]){
int v = b[i];
if(d[v] < d[u] + c[i]){
d[v] = d[u] + c[i];
if(!inq[v]) {
q[++top] = v;
inq[v] = true;
}
}
}
}
return d[t];
} void solve()
{
for(int i = ; i < n; i++){
scanf("%d%d%d", a+i, b+i, c+i);
}
int s = *min_element(a,a+n)-, t = *max_element(b,b+n);
memset(hd+s, 0xff, sizeof(int)*(t-s+));
for(int i = ; i < n; i++){
nx[i] = hd[--a[i]];
hd[a[i]] = i;
}
ec = n;
for(int i = s; i < t; i++){
add_edge(i,i+,);
add_edge(i+,i,-);
} printf("%d\n", spfa(s,t));
} //#define LOCAL
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif
while(~scanf("%d",&n)){
solve();
}
return ;
}

POJ - 1201 Intervals (最短路解线性规划)的更多相关文章

  1. poj 1201 Intervals 解题报告

    Intervals Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Submit Statu ...

  2. POJ 1201 Intervals || POJ 1716 Integer Intervals 差分约束

    POJ 1201 http://poj.org/problem?id=1201 题目大意: 有一个序列,题目用n个整数组合 [ai,bi,ci]来描述它,[ai,bi,ci]表示在该序列中处于[ai, ...

  3. POJ 1201 Intervals (差分约束,最短路)

    题意: 有一个集合Z,其元素都是整整数,但是数量未知.现有n个约束,形如 [a,b]=c 表示整数区间[a,b]中有c个元素在Z中出现.问集合Z最小可能含多少个元素? 思路: 对于所给的区间 cnt[ ...

  4. poj 1201 Intervals(差分约束)

    做的第一道差分约束的题目,思考了一天,终于把差分约束弄懂了O(∩_∩)O哈哈~ 题意(略坑):三元组{ai,bi,ci},表示区间[ai,bi]上至少要有ci个数字相同,其实就是说,在区间[0,500 ...

  5. poj 1201 Intervals(差分约束)

    题目:http://poj.org/problem?id=1201 题意:给定n组数据,每组有ai,bi,ci,要求在区间[ai,bi]内至少找ci个数, 并使得找的数字组成的数组Z的长度最小. #i ...

  6. poj 1201 Intervals——差分约束裸题

    题目:http://poj.org/problem?id=1201 差分约束裸套路:前缀和 本题可以不把源点向每个点连一条0的边,可以直接把0点作为源点.这样会快许多! 可能是因为 i-1 向 i 都 ...

  7. POJ 1201 Intervals【差分约束】

    传送门:http://poj.org/problem?id=1201 题意: 有n个如下形式的条件:,表示在区间[, ]内至少要选择个整数点.问你满足以上所有条件,最少需要选多少个点? 思路:第一道差 ...

  8. POJ 1201 Intervals (差分约束系统)

    题意 在区间[0,50000]上有一些整点,并且满足n个约束条件:在区间[ui, vi]上至少有ci个整点,问区间[0, 50000]上至少要有几个整点. 思路 差分约束求最小值.把不等式都转换为&g ...

  9. POJ 1201 Intervals(图论-差分约束)

    Intervals Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 20779   Accepted: 7863 Descri ...

随机推荐

  1. js最后深入总结

    js常用事件: click  #点击事件 hover #鼠标漂浮事件,,鼠标移到上面就触发事件 blur  #失去焦点就触发事件,多用于文本框操作 focus  #获得焦点就触发事件, change ...

  2. JOIN 和 NULL

    NULL值得数据出现在数据库发展的最初阶段的确给开发和使用者带来了很大的便利,这是因为它为我们节省了太多的磁盘空间,而且在那个年代磁盘是相当昂贵的.但是随着科技的发展,硬件系统的改进突飞猛进,NULL ...

  3. 解决WebStorm/PyCharm/IDEA卡顿的问题

    问题 webstorm强大的功能就不多做介绍了.但是它的缺点也显而易见:吃内存. 电脑配置稍低一点,运行webstorm就特别容易卡顿,特别是项目比较大的时候,那卡顿得不要不要的. 在我的PC机32g ...

  4. Mybatis学习笔记3 - 增删改查示例

    1.接口定义 package com.mybatis.dao; import com.mybatis.bean.Employee; public interface EmployeeMapper { ...

  5. MVCC(Multi-Version Concurrency Control)多版本并发控制机

    MVCC(Multi-Version Concurrency Control)是一种多版本并发控制机制.

  6. impdp参数TABLE_EXISTS_ACTION

    [转自:http://space.itpub.net/519536/viewspace-631445] 当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:a. ...

  7. javascrip学习之基础

    弹窗信息:三种消息框:警告框.确认框.提示框. window.alert("sometext"); var r=confirm("按下按钮");//提示信息,返 ...

  8. Neutron命令测试1

    Refer: http://wenku.baidu.com/link?url=DtrbhO0A393hg8kOWKX0XYuZtSC8Iu0occn8NF1pYcUwNzlaSq5qXCQoNEBDM ...

  9. MATLAB基本概念和变量

    基本概念 1.x=int8(129)=>x=127     (带符号8位整数,最大值为127) x=uint8(129)=>x=129  (无符号型,最大值为255) 2.class函数得 ...

  10. Kure讲HTML_列表标签及表单标签

    首先我上个图来告诉大家什么是列表 左侧的这一部分就可以称为是列表或者叫树,其实我们可以通过div+css实现列表,可是考虑语义化的问题,我们还是看看html提供好的列表标签,html提供了两种列表,一 ...