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

但是我只想到了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. 基于ksoap2-android的soap的封装

    实例基于ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar 1:定义回调接口,通过泛型确定返回值类型 package com.ciii.bd ...

  2. sqlserver 数据库阻塞和死锁

    参考原文:http://blog.csdn.net/ha196200/article/details/44985597 (1) 数据库阻塞: 假设第一个连接T1占有且没有释放资源,第二个连接T2请求同 ...

  3. UDP通讯模型简单示例

    1. UDP通讯模型 2. 服务器端 ① 创建一个socket,用函数socket() ② 绑定IP地址.端口等信息到socket上,用函数bind() ③ 循环接收数据,用函数recvfrom() ...

  4. Ubuntu 安装 phpredis扩展

    官网 https://github.com/phpredis/phpredis 下载->然后解压->上传服务器 /etc/phpredis 进行 cd /etc/phpredisphpiz ...

  5. SQL server数据库端口访问法

    最近数据库连接,也是无意中发现了这个问题,数据库可根据端口来连接 我用的是sql2014测试的,在安装其他程序是默认安装了sql(sql的tcp/ip端口为xxx),服务也不相同,但是由于比较不全,我 ...

  6. my06_sysbench install for mysql 并初始化表数据

    sysbench安装 ************************************************************** 安装sysbench依赖包 rpm -q autom ...

  7. vue-踩过的坑

    1)引入组件时路径一定要是./ or ../开头 import Goback from './public/goback.vue' 2)这类输入框绑定的值不是:value 不是 :value 不然数据 ...

  8. vue-cli中webpack配置解析

    版本号 vue-cli 2.8.1 (终端通过vue -V 可查看) vue 2.2.2 webpack 2.2.1 目录结构 ├── README.md ├── build │ ├── build. ...

  9. es6.3学习笔记

    es版本发布相当快,从1.x到2.x,再直接到5.x,6.x 索引这个词在es中有多重意思: 索引(名词):一个索引类似于传统数据库中的一个索引,用于存储关系型文档.索引的复数为indexes或ind ...

  10. TCP/IP协议<二>

    一.TCP/IP的标准化 1.TCP/IP的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属 ...