https://vjudge.net/contest/400914#problem/J
差分约束系统,设 T i T_i Ti​是到达 i i i站的时刻,则 T i − T i − 1 > = 1 T_i-T_{i-1}>=1 Ti​−Ti−1​>=1
对于每个条件,若 a = = b & & c = = d a==b\&\&c==d a==b&&c==d,则 T d − T b = = 1 T_d-T_b==1 Td​−Tb​==1,否则 T d − T a > X & & T c − T b < X T_d-T_a>X\&\&T_c-Tb<X Td​−Ta​>X&&Tc​−Tb<X
据此建图,再加一个超级源,连到每个点,边权为0,使图连通,跑一遍spfa,若有负环,则失败,否则可行。

#include<bits/stdc++.h>
using namespace std;
const int maxn=2000+100;
const int INF=0x3f3f3f3f;int T,n,m,x;
int d[maxn],inq[maxn],cnt[maxn];
struct Edge{int to,dist;
};
vector<Edge> edges;
vector<int> G[maxn];bool SPFA(int s)
{queue<int>Q;memset(inq,0,sizeof(inq));memset(cnt,0,sizeof(cnt));for(int i=1;i<=n;i++)d[i]=INF;d[s]=0;inq[s]=1;Q.push(s);while(!Q.empty()){int u=Q.front();Q.pop();inq[u]=false;for(int i=0;i<G[u].size();i++){Edge& e=edges[G[u][i]];if(d[u]<INF && d[e.to]>d[u]+e.dist){d[e.to]=d[u]+e.dist;if(!inq[e.to]){Q.push(e.to);inq[e.to]=1;if(++cnt[e.to]>n)return false;}}}}return true;
}void AddEdge(int a,int b,int c)
{edges.push_back((Edge){b,c});G[a].push_back(edges.size()-1);
}int main()
{//freopen("input.in","r",stdin);cin>>T;for(int kase=1;kase<=T;kase++){cin>>n>>m>>x;edges.clear();for(int i=1;i<=n;i++)G[i].clear();for(int i=1;i<=n;i++)AddEdge(0,i,0);for(int i=2;i<=n;i++)AddEdge(i,i-1,-1);for(int i=1;i<=m;i++){int a,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);if(a==b&&c==d)AddEdge(c,a,-x),AddEdge(a,c,x);else AddEdge(d,a,-x-1),AddEdge(b,c,x-1);}if(!SPFA(0))printf("Case #%d: IMPOSSIBLE\n",kase);else{printf("Case #%d:",kase);for(int i=2;i<=n;i++)printf(" %d",d[i]-d[i-1]);putchar('\n');}}return 0;
}

HDU6254 Subway Chasing相关推荐

  1. J - Subway Chasing ( 差分约束 )

    J - Subway Chasing ( 差分约束 ) 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6252 题意:有1~n号地铁站( Alice和B ...

  2. 17 哈尔滨CCPC final J - Subway Chasing 差分约束

    题目:https://vjudge.net/problem/HDU-6252 Mr. Panda and God Sheep are roommates and working in the same ...

  3. 2017 CCPC final HDU - 6252 Subway Chasing (差分约束)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6252 题目大意:有n个车站,两个人轮流从第一个车站出发,第一个人先出发x分钟,第二个人再出发.接下来给 ...

  4. HDU6252 Subway Chasing 2017 CCPC Final

    对于题目我们可以分两种情况. 在图中,两个红色箭头为两个人现在的位置,这是一种普遍的情况,那么既然两个箭头之间的距离为x. 我们设距离的前缀和为Si   ,一下的ABCD,都应该时SA  SB  SC ...

  5. HDU - 6252 Subway Chasing (差分约束)

    题目链接 题意:现在有两个人,其中一个人比另外一个人先走x分钟,然后两个人在途中不停的聊天,要是两个人报的点一样说明该人正好在那个点,要是不一样,则在两个点中间,现在要让你求两个站之间的长度(只要满足 ...

  6. hdu6525——Subway Chasing(差分约束系统)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6252 题目大意: 第一个人比第二个人先走了x分钟,路上有n个车站,现在有m个询问,每次询问会得到第一个 ...

  7. L - Subway POJ - 2502

    L - Subway POJ - 2502 题意: 从 家出发步行与坐 subway 交替进行,问最小的时间花费,最终四舍五入答案为 整数 存图难 四舍五入: double b int a = b + ...

  8. PAT甲级1131 Subway Map (30分):[C++题解]堆优化dijkstra、单源最短路、地铁地图、巧妙地建图套dijkstra模板!!

    文章目录 题目分析 题目链接 题目分析 原题: 来源:acwing 分析: 建图:所有能走到的点之间建立一条边,比如下面一条地铁线路有4站,它们是相通的,两两之间建一条边,边权是经过的站点数. 下面考 ...

  9. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

最新文章

  1. Bootstrap笔记
  2. 初识C语言---(2)
  3. 中文 Markdown 编写格式规范的命令行工具 lint-md
  4. 根据输入的数字显示日期(新手)
  5. 湖北大学校长计算机考研复试分数线,湖北大学考研复试分数线
  6. python数据处理实例-Python数据处理numpy.median的实例讲解
  7. linux 更改 引导分区,Linux系统引导过程及引导修复
  8. 如何帮助金融客户“用好云”?
  9. jenkins pipeline之如何串联多个Job
  10. c语言case语句块,JavaScript使用Switch语句来选择将要执行的代码块
  11. gcc编译ceres-solver报错‘is_trivially_default_constructible’ is not a member of ‘std’
  12. SQL Sever select定制查询
  13. MySQL 定义条件与处理程序 的详细讲解
  14. 奇点云数据中台技术汇(四)| DataSimba系列之流式计算
  15. 脑机接口、开源和民主化增强意识的未来
  16. 为了牙齿美白,该不该给百天的小宝宝补充氟化物?
  17. 【收藏】亲测奥维互动地图如何导入2023谷歌地图
  18. 京东base.css
  19. 认知电子战 (1.1):传统电子战
  20. SSL 域名证书 安装指引

热门文章

  1. 机器学习-mini batch的一些tips
  2. XSS--编码绕过,qcms,鲶鱼cms
  3. ASP.NET ValidationSummary 控件
  4. tkinter库绘图实例13:手绘画板效果
  5. oled屏HBM功能开启关闭
  6. python如何爬取图片_百度图片爬虫-python版-如何爬取百度图片?
  7. HTML DOM:replaceChild()和cloneNode()
  8. 前端,移动开发者,UI须懂: 不同设备的之间的尺寸
  9. Google的大规模集群管理系统Borg
  10. RBF网络插值、MNIST识别简例