P3084 照片 [差分约束]
传送门
等式转换为两个不等式 ,
相邻再建一次边
#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 照片 [差分约束]相关推荐
- [spfa][差分约束] 洛谷 P3084 照片Photo
题目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 <= N < ...
- P3084 [USACO13OPEN]照片Photo 差分约束
农夫约翰决定给站在一条线上的N(1 <= N <= 200,000)头奶牛制作一张全家福照片,N头奶牛编号1到N. 于是约翰拍摄了M(1 <= M <= 100,000)张照片 ...
- P3084 [USACO13OPEN]照片Photo(差分约束)
题目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 <= N < ...
- HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集
题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...
- HDU3440(差分约束+SPFA算法)
题意:两栋房子之间的最大距离为D,也就是A-B<=D,现在求出最矮和最高房子之间的最大距离 思路:差分约束+SPFA算法: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...
- HDU1531(差分约束+Bellman_ford)
题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...
- poj3159(差分约束)
题意:其实题目要求的就是这个B-A<=c,所以对应单源最短路径中的d[v]>d[u]+e[u][v] 关于差分约束: 当问题可以转化为形如一组 xi‑x'i<=yi 或一组 xi‑x ...
- poj1364(差分约束+Bellman-ford)
题意:给出一个序列Si = {aSi, aSi+1, ..., aSi+ni} 和其子序列S = {a1, a2, ..., an}:在给出序列的约束条件: aSi + aSi+1 + ... + a ...
- poj1201(差分约束+SPFA)
看到这道题,其实就是和poj1716是差不多的 题意:给出n个闭整数区间[ai,bi]和n个整数C1,.,cn.计算具有区间[ai,bi]的至少ci公共元素的整数集Z的最小大小,对于每一个i=1,2, ...
最新文章
- php把数组组成xml,php 怎么将数组转xml的函数?
- R语言使用vcd包的spine函数可视化spinogram图(spinogram图是被归一化的堆叠条形图、这样每个条形的高度一样、内部显示不同分布的比例)
- JQuery图表插件之Flot
- linux 查看mysql安装目录_Linux环境下安装MySQL数据库示例教程
- 第一篇文章,,测试效果,
- 查看git安装目录_一、Linux和Windows下安装Git
- 09-百度ai图片识别
- Leetcode400Nth Digit第N个数字
- .Net Core功能开关实战
- 设计模式(二)模板方法模式
- 计算机应用基础作业2客观题,《计算机应用基础》作业2.doc
- java下linux和window通用的获取指定网段的本地ip地址(NetworkInterface)
- (转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案
- mysql 索引超出范围_java.sql.SQLException:列索引超出范围,0 1
- 哨兵系列卫星_传感器|英国Teledyne e2v公司为“哥白尼哨兵”卫星任务提供CO2监测传感器...
- 程序员实习期馒头加酸菜,转正后月薪10K起步:走路都带风!
- 计算机应用能力考试ppt,全国专业技术人员计算机应用能力考试 PPT 2003 题库版...
- ChatGPT 使用 拓展资料:使用 HuggingFace+Gradio 部署快速搭建一个ChatGPT的聊天界面
- 那是无英勇的生活战士用生命换来的
- git submodule解决多包协作
热门文章
- 从爆红到凉凉,「蚂蚁呀嘿」只用了 7 天
- 给图像增加一种噪声,构造并利用至少两种高通滤波器实现频率域的滤波
- <iomanip>库
- 基于python的opencv_基于Python和OpenCV的人脸检测
- win10的c语言程序闪退,win10内置应用出现闪退怎么回事? win10打开应用总闪退的解决方法...
- PHD数据库介绍(一)
- 建设“智慧城市”、“智慧社区”远程控制开关智能微型断路器哪家好?——安科瑞 严新亚
- 手机相机好坏测试软件,教你一分钟教你看懂手机拍照好坏!
- 《C语言》爱心代码,送给心爱之人
- Android UI绘制流程分析(三)measure