传送门

等式转换为两个不等式 ,

相邻再建一次边

#include<bits/stdc++.h>
#define N 200050
#define M 1000050
#define R register
using namespace std;
int first[N],next[M],to[M],w[M],tot;
int n,m,dis[N],vis[N],cnt[N];
int read(){int cnt=0; char ch=0;while(!isdigit(ch))ch=getchar();while(isdigit(ch))cnt=cnt*10+(ch-'0'),ch=getchar();return cnt;
}
inline void add(int x,int y,int z){next[++tot]=first[x],first[x]=tot,to[tot]=y,w[tot]=z;
}
inline int spfa(){queue<int> q; q.push(0);memset(dis,127,sizeof(dis));dis[0]=0 , vis[0] = cnt[0] = 1;while(!q.empty()){int x = q.front(); q.pop(); vis[x]=0;for(int i=first[x];i;i=next[i]){int t=to[i];if(dis[t] > dis[x] + w[i]){dis[t] = dis[x] + w[i];if(cnt[t]>n) return -1;if(!vis[t]) vis[t]=1,q.push(t);}}} return dis[n];
}
int main(){n=read(),m=read();for(R int i=1;i<=m;i++){int x=read(),y=read();add(x-1,y,1); add(y,x-1,-1);}for(R int i=1;i<=n;i++){add(i-1,i,1); add(i,i-1,0);} printf("%d",spfa()); return 0;
}

P3084 照片 [差分约束]相关推荐

  1. [spfa][差分约束] 洛谷 P3084 照片Photo

    题目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 <= N < ...

  2. P3084 [USACO13OPEN]照片Photo 差分约束

    农夫约翰决定给站在一条线上的N(1 <= N <= 200,000)头奶牛制作一张全家福照片,N头奶牛编号1到N. 于是约翰拍摄了M(1 <= M <= 100,000)张照片 ...

  3. P3084 [USACO13OPEN]照片Photo(差分约束)

    题目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 <= N < ...

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

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

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

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

  6. HDU1531(差分约束+Bellman_ford)

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

  7. poj3159(差分约束)

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

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

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

  9. poj1201(差分约束+SPFA)

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

最新文章

  1. php把数组组成xml,php 怎么将数组转xml的函数?
  2. R语言使用vcd包的spine函数可视化spinogram图(spinogram图是被归一化的堆叠条形图、这样每个条形的高度一样、内部显示不同分布的比例)
  3. JQuery图表插件之Flot
  4. linux 查看mysql安装目录_Linux环境下安装MySQL数据库示例教程
  5. 第一篇文章,,测试效果,
  6. 查看git安装目录_一、Linux和Windows下安装Git
  7. 09-百度ai图片识别
  8. Leetcode400Nth Digit第N个数字
  9. .Net Core功能开关实战
  10. 设计模式(二)模板方法模式
  11. 计算机应用基础作业2客观题,《计算机应用基础》作业2.doc
  12. java下linux和window通用的获取指定网段的本地ip地址(NetworkInterface)
  13. (转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案
  14. mysql 索引超出范围_java.sql.SQLException:列索引超出范围,0 1
  15. 哨兵系列卫星_传感器|英国Teledyne e2v公司为“哥白尼哨兵”卫星任务提供CO2监测传感器...
  16. 程序员实习期馒头加酸菜,转正后月薪10K起步:走路都带风!
  17. 计算机应用能力考试ppt,全国专业技术人员计算机应用能力考试 PPT 2003 题库版...
  18. ChatGPT 使用 拓展资料:使用 HuggingFace+Gradio 部署快速搭建一个ChatGPT的聊天界面
  19. 那是无英勇的生活战士用生命换来的
  20. git submodule解决多包协作

热门文章

  1. 从爆红到凉凉,「蚂蚁呀嘿」只用了 7 天
  2. 给图像增加一种噪声,构造并利用至少两种高通滤波器实现频率域的滤波
  3. <iomanip>库
  4. 基于python的opencv_基于Python和OpenCV的人脸检测
  5. win10的c语言程序闪退,win10内置应用出现闪退怎么回事? win10打开应用总闪退的解决方法...
  6. PHD数据库介绍(一)
  7. 建设“智慧城市”、“智慧社区”远程控制开关智能微型断路器哪家好?——安科瑞 严新亚
  8. 手机相机好坏测试软件,教你一分钟教你看懂手机拍照好坏!
  9. 《C语言》爱心代码,送给心爱之人
  10. Android UI绘制流程分析(三)measure