【POJ1201】Intervals-差分约束系统+单源最长路
来源:互联网 发布:苹果音频编辑软件 编辑:程序博客网 时间:2024/06/07 06:45
测试地址:Intervals
题目大意:有一个集合,给定
做法:本题需要用到差分约束系统和单源最长路。
题目中给了形如
等等,好像有什么东西漏了。注意到
有的同学可能会问了,会不会存在无解的情况?可以证明,根据题目的数据范围,建出来的图是不会出现正环的,也就是一定有解,所以不用担心。
以下是本人代码:
#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#define inf 1000000000using namespace std;int n,maxlen=0,s,first[50010]={0},tot=0;int dis[50010];bool vis[50010]={0};struct edge {int v,d,next;} e[300010];queue <int> Q;void insert(int a,int b,int d){ e[++tot].v=b; e[tot].d=d; e[tot].next=first[a]; first[a]=tot;}void spfa(int s){ Q.push(s); vis[s]=1;dis[s]=0; for(int i=0;i<=maxlen+1;i++) dis[i]=-inf; while(!Q.empty()) { int v=Q.front();Q.pop(); for(int i=first[v];i;i=e[i].next) if (dis[e[i].v]<dis[v]+e[i].d) { dis[e[i].v]=dis[v]+e[i].d; if (!vis[e[i].v]) Q.push(e[i].v); } vis[v]=0; }}int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); maxlen=max(maxlen,b); insert(a,b+1,c); } s=maxlen+2; for(int i=0;i<=maxlen;i++) { insert(s,i+1,0); if (i>0) { insert(i+1,i,-1); insert(i,i+1,0); } } spfa(s); printf("%d",dis[maxlen+1]); return 0;}
阅读全文
0 0
- 【POJ1201】Intervals-差分约束系统+单源最长路
- 【POJ1201】Intervals 差分约束系统
- POJ1201:Intervals(差分约束系统)
- POJ1201 Intervals [差分约束系统 SPFA]
- 【差分约束系统】Intervals POJ1201
- POJ1201 Intervals 【差分约束系统】
- 【差分约束系统】POJ1201[Intervals]题解
- 【差分约束系统】POJ1201 Intervals
- POJ1201 Intervals <差分约束系统>
- POJ1201--差分约束--Intervals
- POJ1201-Intervals(差分约束)
- Intervals poj1201(差分约束)
- (POJ1201)Intervals <差分约束系统-区间约束>
- POJ1201 差分约束最长路
- poj1201——Intervals//差分约束系统
- POJ1201(Hdu1384) Intervals差分约束系统
- poj1201 Intervals(差分约束)
- poj1201 Intervals,差分约束问题,spfa
- java 8 总结 之lambda
- 1082: 敲7(多实例测试)
- 记录一个自己用的添加excel内容的类
- ArcEngine数据删除几种方法和性能比较
- Power OJ 魔术球问题
- 【POJ1201】Intervals-差分约束系统+单源最长路
- python3.6+pyqt5实现GUI设计(二)
- 商城项目-dubbo,框架整合,dubbo发布和引用服务
- Eclipse4.7创建Maven项目报错解决方法
- 算法提高 ADV-156 分分钟的碎碎念
- 数据挖掘 日期转换表
- 1083: 数值统计(多实例测试)
- 车牌识别相机的算法开发与调用例程
- 第二周——项目二—程序的多文件组织