POJ - 1201 Intervals (最短路解线性规划)
相交区间选尽量少的点是可以贪心的,右端点排序以后,尽量往右边放可以得到可以使得点在区间尽可能多。
但是我只想到了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 (最短路解线性规划)的更多相关文章
- poj 1201 Intervals 解题报告
		Intervals Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu Submit Statu ... 
- POJ 1201 Intervals ||  POJ 1716 Integer Intervals 差分约束
		POJ 1201 http://poj.org/problem?id=1201 题目大意: 有一个序列,题目用n个整数组合 [ai,bi,ci]来描述它,[ai,bi,ci]表示在该序列中处于[ai, ... 
- POJ 1201 Intervals (差分约束,最短路)
		题意: 有一个集合Z,其元素都是整整数,但是数量未知.现有n个约束,形如 [a,b]=c 表示整数区间[a,b]中有c个元素在Z中出现.问集合Z最小可能含多少个元素? 思路: 对于所给的区间 cnt[ ... 
- poj 1201 Intervals(差分约束)
		做的第一道差分约束的题目,思考了一天,终于把差分约束弄懂了O(∩_∩)O哈哈~ 题意(略坑):三元组{ai,bi,ci},表示区间[ai,bi]上至少要有ci个数字相同,其实就是说,在区间[0,500 ... 
- poj 1201 Intervals(差分约束)
		题目:http://poj.org/problem?id=1201 题意:给定n组数据,每组有ai,bi,ci,要求在区间[ai,bi]内至少找ci个数, 并使得找的数字组成的数组Z的长度最小. #i ... 
- poj 1201 Intervals——差分约束裸题
		题目:http://poj.org/problem?id=1201 差分约束裸套路:前缀和 本题可以不把源点向每个点连一条0的边,可以直接把0点作为源点.这样会快许多! 可能是因为 i-1 向 i 都 ... 
- POJ 1201 Intervals【差分约束】
		传送门:http://poj.org/problem?id=1201 题意: 有n个如下形式的条件:,表示在区间[, ]内至少要选择个整数点.问你满足以上所有条件,最少需要选多少个点? 思路:第一道差 ... 
- POJ 1201 Intervals (差分约束系统)
		题意 在区间[0,50000]上有一些整点,并且满足n个约束条件:在区间[ui, vi]上至少有ci个整点,问区间[0, 50000]上至少要有几个整点. 思路 差分约束求最小值.把不等式都转换为&g ... 
- POJ 1201 Intervals(图论-差分约束)
		Intervals Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 20779 Accepted: 7863 Descri ... 
随机推荐
- hive支持事务及单行操作 update delete
			测试环境 Hive 1.2.1000.2.6.0.3-8 set hive.support.concurrency=true; set hive.exec.dynamic.partition.mod ... 
- eclipse 分屏显示同一文件
			某个类很大,可能有数千行.当你想要将类开头部分与中间或者靠后的部分进行对比时,请follow如下步骤: Window -> Editor -> Toggle Split Editor (C ... 
- python 运算符-赋值运算
			结果是值 算数运算: a = 10 * 10 赋值运算: a = a + 1 a +=1 结果是布尔值 比较运算: a = 1 > 5 逻辑运算: a = 1 > 6 or 1= ... 
- Linux cp命令拷贝 不覆盖原有的文件
			cp 参数说明: -i或--interactive 覆盖既有文件之前先询问用户. -r 递归处理,将指定目录下的文件与子目录一并处理. -R或--recursive 递归处理,将指定目录下的所有 ... 
- Sublime Text格式化HTML JS CSS代码
			Sublime Text是开发Hybrid应用的神器,但是有时候对糟糕的代码格式很懊恼,尤其是团队成员比较多,并且代码风格不是很统一的时候.幸好有可用的格式化插件,比较好用的就是HTML-CSS-JS ... 
- http三次握手四次挥手
			最近一直忙于看前端vue相关内容,后端相关内容没有跟进,文章停了3周,,,哎,还是懒吧!子曰生命在于运动,该学习还是要学的,文章嘛也还是要整理滴,不扯了--- 参考: https://blog.csd ... 
- jQuery源代码学习笔记_工具函数_noop/error/now/trim
			jQuery源代码学习笔记_工具函数_noop/error/now/trim jquery提供了一系列的工具函数,用于支持其运行,今天主要分析noop/error/now/trim这4个函数: 1.n ... 
- 给用户添加sodu权限
			vim /etc/sudoers 进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的 ... 
- fastjson的json字符串转List
			1.代码 gameListStr = "[{"gameId":"1","gameName":"哈哈"},{& ... 
- Angularjs ui router,路由嵌套 父controller执行问题
			解决方式来源:https://stackoverflow.com/questions/25316591/angularjs-ui-router-state-reload-child-state-onl ... 
