思路:

差分约束,难在建图。(我是不会告诉你我刚学会SPFA的。。。)

把每个区间的ai–>bi连一条长度为ci的边。

k–>k+1连一条长度为0的边。

k+1–>k连一条长度为-1的边。

求最长路即可。

// by SiriusRen
#include <queue>
#include <cstdio>
#include <algorithm>
#define N 55555
using namespace std;
int w[N*3],v[N*3],first[N],next[N*3],tot=2;
int n,xx,yy,zz,minn=N,maxx=0,d[N];
bool vis[N];
queue<int>q;
void add(int x,int y,int z){
w[tot]=z,v[tot]=y;
next[tot]=first[x];first[x]=tot++;
}
void spfa(int x){
vis[x]=1,d[x]=0,q.push(x);
while(!q.empty()){
int temp=q.front();q.pop(),vis[temp]=0;
for(int i=first[temp];i;i=next[i])
if(d[temp]+w[i]>d[v[i]]){
d[v[i]]=d[temp]+w[i];
if(!vis[v[i]])q.push(v[i]),vis[v[i]]=1;
}
}
}
int main(){
scanf("%d",&n);
while(n--)scanf("%d%d%d",&xx,&yy,&zz),add(xx,yy+1,zz),minn=min(minn,xx),maxx=max(maxx,yy+1);
for(int i=minn;i<maxx;i++)add(i,i+1,0),add(i+1,i,-1);
spfa(minn);
printf("%d\n",d[maxx]);
}

POJ 1201 差分约束+SPFA的更多相关文章

  1. poj Layout 差分约束+SPFA

    题目链接:http://poj.org/problem?id=3169 很好的差分约束入门题目,自己刚看时学呢 代码: #include<iostream> #include<cst ...

  2. poj 1201 差分约束

    http://www.cnblogs.com/wangfang20/p/3196858.html 题意: 求集合Z中至少要包含多少个元素才能是每个区间[ai,bi]中的元素与Z中的元素重合个数为ci. ...

  3. POJ 1201 差分约束(集合最小元素个数)

    题意:       给你一个集合,然后有如下输入,a ,b ,c表示在范围[a,b]里面有至少有c个元素,最后问你整个集合最少多少个元素. 思路:       和HDU1384一模一样,首先这个题目可 ...

  4. Intervals POJ - 1201 差分约束

    You are given n closed, integer intervals [ai, bi] and n integers c1, ..., cn. Write a program that: ...

  5. 【poj3169】【差分约束+spfa】

    题目链接http://poj.org/problem?id=3169 题目大意: 一些牛按序号排成一条直线. 有两种要求,A和B距离不得超过X,还有一种是C和D距离不得少于Y,问可能的最大距离.如果没 ...

  6. O - Layout(差分约束 + spfa)

    O - Layout(差分约束 + spfa) Like everyone else, cows like to stand close to their friends when queuing f ...

  7. poj 1201 Intervals【差分约束+spfa】

    设s为前缀和,首先显然的条件是\[ s_{bi}-s_{ai-1}>=c \],然后隐含的是\[ s_i-s_{i-1}>=0 s_i-s_{i-1}<=1 \] 然后根据差分约束, ...

  8. POJ 1364 / HDU 3666 【差分约束-SPFA】

    POJ 1364 题解:最短路式子:d[v]<=d[u]+w 式子1:sum[a+b+1]−sum[a]>c      —      sum[a]<=sum[a+b+1]−c−1  ...

  9. POJ 3159 Candies(差分约束+spfa+链式前向星)

    题目链接:http://poj.org/problem?id=3159 题目大意:给n个人派糖果,给出m组数据,每组数据包含A,B,C三个数,意思是A的糖果数比B少的个数不多于C,即B的糖果数 - A ...

随机推荐

  1. 体验:Anko + Kotlin

    ● 依赖:compile 'org.jetbrains.anko:anko:0.10.0' ● 界面: import android.view.View import org.jetbrains.an ...

  2. Python 之 基础知识(二)

    一.分支运算 在Python 2.x中判断不等于还可以用<> if语句进阶:elif if 条件1: ...... elif 条件2: ...... else: ...... 二.逻辑运算 ...

  3. MongoDB 博客截图之一

    来源:十天掌握MongoDB之三:学会Find - 学吧网 - 专注于PHP资源分享

  4. sql server<> != 从数据类型varchar转换为numeric 时出错

    sql server 数据类型转换出错 字段percentcomplete 是 varchar 类型, 都是存的数字 用 where cast(percentcomplete as numeric(1 ...

  5. 使用QT的一些小Tipster

    1.在使用Qt Creator编程时,难免会用到将float类型转换为QString类型的方法:原文 1.1. 将QString类型转化为float类型,很简单 QString data;       ...

  6. VTK读取序列化图像

    vtk获取内存中图像数据 原文链接:http://blog.csdn.net/zmy3376365/article/details/7717721 内存中有段图片数据  ,使用VTK来读入,然后就可以 ...

  7. 01--Qt扫盲篇

    Qt扫盲篇 1.What is Qt 一个跨平台应用程序和UI开发框架,主要偏向于UI框架方面,由诺基亚公司开发维护. 使用 Qt 只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操 ...

  8. vc++图像保存,重绘

    新建mfc应用程序,单文档 增加绘图 分别增加命令响应 添加成员变量UINIT 图形可以运行,如何保存呢?(一个集合类,CPtArt) 用一个类的对象来保存一个图形的三个要素 所以插入一个新的类(通常 ...

  9. javaee 文件的复制

    package Shurushucu; import java.io.FileInputStream; import java.io.FileNotFoundException; import jav ...

  10. -ms-,-moz-,-webkit-,-o-含义

    transform:rotate(30deg); //统一标识语句 -ms-transform:rotate(30deg); //-ms代表ie内核识别码 -moz-transform:rotate( ...