#include<stdio.h>
/*
要善于挖掘隐含条件
dis[v]-dis[u]>=bian[i].w;一个条件(u,v,bian[i].w);
dis[i+1]>=dis[i];隐含条件(i,i+1,0);
dis[i+1]-dis[i]<=1即dis[i]>=dis[i+1]-1;(i+1,i,-1);
>=求最大约束条件,求最长路.
<=求最小约束条件,求最短路.
*/
#include<string.h>
#include<queue>
using namespace std;
#define N 51000
#define inf 0x3fffffff
struct node {
int u,v,w,next;
}bian[N*4];
int head[N],yong;
void addedge(int u,int v,int w) {
bian[yong].u=u;
bian[yong].v=v;
bian[yong].w=w;
bian[yong].next=head[u];
head[u]=yong++;
}
int spfa(int s,int t) {
int dis[N];
queue<int>q;
int visit[N],i;
for(i=s;i<=t;i++)
dis[i]=-inf;
memset(visit,0,sizeof(visit));
visit[s]=1;
dis[s]=0;
q.push(s);
while(!q.empty()) {
int u=q.front();
q.pop();
visit[u]=0;
for(i=head[u];i!=-1;i=bian[i].next) {
int v=bian[i].v;
if(dis[v]<dis[u]+bian[i].w) {
dis[v]=dis[u]+bian[i].w;
if(!visit[v]) {
visit[v]=1;
q.push(v);
}
}
}
}
return dis[t];
}
int main()
{
int n,i,j,k,minn,maxx;
while(scanf("%d",&n)!=EOF)
{
minn=inf;
maxx=-1;
memset(head,-1,sizeof(head));
yong=0;
while(n--)
{
scanf("%d%d%d",&i,&j,&k);
addedge(i,j+1,k);
if(j+1>maxx)maxx=j+1;
if(i<minn)minn=i;
}
for(i=minn; i<=maxx; i++)
addedge(i,i+1,0),addedge(i+1,i,-1);//
printf("%d\n",spfa(minn,maxx));
}
return 0;
}

hdu 1384 查分约束的更多相关文章

  1. 洛谷P1993 小 K 的农场(查分约束)

    /* 加深一下对查分约束的理解 建图的时候为了保证所有点联通 虚拟一个点 它与所有点相连 权值为0 然后跑SPFA判负环 这题好像要写dfs的SPFA 要不超时 比较懒 改了改重复进队的条件~ */ ...

  2. codevs 1242 布局(查分约束+SPFA)

    /* 查分约束. 给出的约束既有>= 又有<= 这时统一化成一种 Sb-Sa>=x 建边 a到b 权值为x Sb-Sa<=y => Sa-Sb>=-y 建边 b到a ...

  3. poj 1201 Interval (查分约束)

    /* 数组开大保平安. 查分约束: 输入的时候维护st和end 设每个点取元素di个 维护元素个数前缀和s Sbi-Sai-1>=ci 即:建立一条从ai-1到bi的边 权值为ci 表示ai到b ...

  4. Hdu 1384(差分约束)

    题目链接 Intervals Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  5. hdu 1384 Intervals (差分约束)

    Intervals Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  6. 最短路&查分约束

    [HDU] 1548 A strange lift 根蒂根基最短路(或bfs)★ 2544 最短路 根蒂根基最短路★ 3790 最短路径题目 根蒂根基最短路★ 2066 一小我的观光 根蒂根基最短路( ...

  7. BZOJ2330 糖果题解 查分约束

    BZOJ 2330 糖果题解 差分约束系统 + SPFA 题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2330 Description ...

  8. hdu 1384 Intervals (差分约束)

    /* 给你 n 个区间 [Ai, Bi],要求从每一个区间中至少选出 Ci 个数出来组成一个序列 问:满足上面条件的序列的最短长度是多少? 则对于 不等式 f(b)-f(a)>=c,建立 一条 ...

  9. POJ1364基本的查分约束问题

    题意:       给了由n个数组成的一个数列,然后给你各种区间的和是大于ci还是小于ci啥的,最后问你是否冲突. 思路:       差分约束水题,不过wa了两次,原因处理区间问题的细节马虎了,说下 ...

随机推荐

  1. Codeforces Round #277 (Div. 2) B.OR in Matrix 模拟

    B. OR in Matrix   Let's define logical OR as an operation on two logical values (i. e. values that b ...

  2. operator[] 重载

    #include <iostream>#include <vector>#include <string> class Assoc {    struct Pair ...

  3. TCP打开文件传输(服务器端并发code)

    #include <stdio.h>#include <stdlib.h>#include <arpa/inet.h>#include <sys/types. ...

  4. XML案例(使用JAXP进行DOM解析)

    1.book.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> ...

  5. C++ 对象的赋值和复制 基本的

    对象的赋值 如果对一个类定义了两个或多个对象,则这些对象之间是可以进行赋值,或者说,一个对象的值可以赋值给另一个同类的对象.这里所指的值是指对象中所有数       据的成员的值.对象之间进行赋值是“ ...

  6. jdbc数据库中的增删改

    HttpSession session=request.getSession(); session.setAttribute("currentUser",u.username);/ ...

  7. 网络简要<入门篇>对应配置代码

    交换机的配置 (1)交换机的模式: switch>    用户模式,可以查看设备的部分内容 SW-3ceng>enable SW-3ceng#          进入特权模式,可以查看更多 ...

  8. Visual Studio q启动卡顿

    在开发人员CMD下面执行 Devenv.exe /ResetSettings ,然后顺利打开 总发现vs2015经常把cpu给占满了,导致电脑卡的不要不要的.这是CodeLens引起的,因为装了VAs ...

  9. ROS-URDF-Xacro

    前言:Xacro是一种宏语言,允许代码复用,使用Xacro可以减少URDF文件中的代码量. 参考自:http://wiki.ros.org/urdf/Tutorials/Using%20Xacro%2 ...

  10. 基于NPOI的扩展

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using NPOI.HSS ...