思路:
i–>i+1连一条边权为0的边
i–>i-1连一条边权为-1的边
start-1 —>end 连一条边权为w的边

求0—>n的最长路即可

//By SiriusRen
#include <queue>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 22222
int next[N],first[N],v[N],w[N],tot=0;
int n,m,xx,inq[N],dis[N];
void spfa(){queue<int>q;q.push(0);while(!q.empty()){int t=q.front();q.pop();inq[t]=0;for(int i=first[t];~i;i=next[i])if(dis[v[i]]<dis[t]+w[i]){dis[v[i]]=dis[t]+w[i];if(!inq[v[i]])inq[v[i]]=1,q.push(v[i]);}}
}
int main(){memset(first,-1,sizeof(first));memset(dis,-1,sizeof(dis));scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d%d%d",&xx,&v[tot],&w[tot]);next[tot]=first[xx-1],first[xx-1]=tot++;}for(int i=1;i<=n;i++)w[tot]=0,v[tot]=i,next[tot]=first[i-1],first[i-1]=tot++;for(int i=0;i<=n;i++)w[tot]=-1,v[tot]=i,next[tot]=first[i+1],first[i+1]=tot++;dis[0]=0;spfa();printf("%d\n",dis[n]);
}

转载于:https://www.cnblogs.com/SiriusRen/p/6532322.html

TYVJ1415 差分约束相关推荐

  1. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

  2. HDU3440(差分约束+SPFA算法)

    题意:两栋房子之间的最大距离为D,也就是A-B<=D,现在求出最矮和最高房子之间的最大距离 思路:差分约束+SPFA算法: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  3. HDU1531(差分约束+Bellman_ford)

    题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...

  4. poj3159(差分约束)

    题意:其实题目要求的就是这个B-A<=c,所以对应单源最短路径中的d[v]>d[u]+e[u][v] 关于差分约束: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...

  5. poj1364(差分约束+Bellman-ford)

    题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...

  6. poj1201(差分约束+SPFA)

    看到这道题,其实就是和poj1716是差不多的 题意:给出n个闭整数区间[ai,bi]和n个整数C1,.,cn.计算具有区间[ai,bi]的至少ci公共元素的整数集Z的最小大小,对于每一个i=1,2, ...

  7. poj3169(差分约束+SPFA)

    题意:FJ有N头牛,这些牛都站在一条直线上等待,但是现在给出了一些条件: 1.首先列出哪些牛之间彼此喜欢,以及之间的最大距离,也就是A-B<=X 2.随后列出哪些牛之间彼此不喜欢,以及之间的最小 ...

  8. poj1716(差分约束+SPFA)

    题意:整数间隔[a,b],a<b,是以a开头和以b结尾的所有连续整数的集合.在包含至少两个不同整数的集合中找到每个间隔的最小元素数. 思路:采用差分约束算法:当问题可以转化为形如一组 xi‑x' ...

  9. 差分约束问题 ---- 2019ccpc哈尔滨A. Artful Paintings[二分+差分约束+建图剪枝]

    题目链接 题目大意: 有N≤3e3N≤3e3N≤3e3个格子,你可以任意给每个格子染色,但是要满足M≤3e3M≤3e3M≤3e3限制条件,限制条件有两种类型: 区间[l,r][l,r][l,r]中被染 ...

最新文章

  1. 2021年大数据ELK(四):Lucene的美文搜索案例
  2. 浅谈单片机程序设计中的“分层思想”
  3. caffe之mac下环境搭建
  4. (素材源码)猫猫学IOS(十六)UI之XIB自定义Cell实现团购UI
  5. Scrapy-xpath用法以及实例
  6. 一种使用蒸汽眼罩保养的方法
  7. volatile能保持线程安全吗_从volatile说到i++的线程安全问题
  8. 树回归--python Tkinter库创建GUI(2)
  9. java file gettext_避免使用.properties文件GNU Gettext Java
  10. Nginx 服务并发过10万的Linux内核优化配置
  11. 高仿真的类-请求url
  12. 有一种感情,叫“发小”
  13. 容器对象模式。 一种新的测试模式。
  14. MYSQL 常用查询命令
  15. centos 增加分区容量
  16. Gensim进阶教程
  17. json_extract提取复杂json_Python中高效使用JSON的四个小窍门
  18. 如何设置word的有效期
  19. 如何让自己成为一个优秀的Java架构师,而不是码农
  20. GC是什么? 为什么要有GC?

热门文章

  1. asp.net 服务器应用程序不可用
  2. [转] Nodejs 进阶:Express 常用中间件 body-parser 实现解析
  3. 1月31日云栖精选夜读:阿里云客户案例研究:罗辑思维
  4. iBATIS In Action:使用映射语句(一)
  5. JVM系列三:JVM参数设置、分析
  6. dubbo 自定义过滤器,打印接口调用信息
  7. 开源 免费 java CMS - FreeCMS-标签 channelList .
  8. 查看哪个进程占用端口
  9. 小程序webview跳转页面后没有返回按钮完美解决方案
  10. 关于Webpack详述系列文章 (第四篇)