bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1731
对差分约束理解更深。还发现美妙博客:http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html
原来不是一定要有一个源点向每个点连0边。而且“不可到达”原来是那个意思。
UPD(过了一会儿): vis[ ]被自己蒟掉了……但好在spfa也可以看松弛次数!一直以为只能看入队次数。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #define ll long long using namespace std; const int N=1005,M=2e4+5+N; int n,ml,md,hd[N],xnt,to[M],nxt[M],w[M],cnt[N]; ll dis[N]; bool vis[N]; queue<int> q; int rdn() {int ret=0;bool fx=1;char ch=getchar();while(ch>'9'||ch<'0'){if(ch=='-')fx=0;ch=getchar();}while(ch>='0'&&ch<='9') ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar();return fx?ret:-ret; } void add(int x,int y,int z) {to[++xnt]=y; nxt[xnt]=hd[x]; hd[x]=xnt; w[xnt]=z; } ll spfa() {memset(dis,0x3f,sizeof dis); dis[1]=0; cnt[1]=1;q.push(1); vis[1]=1; ll INF=dis[2];while(q.size()){int k=q.front(); q.pop(); vis[k]=0;for(int i=hd[k],v;i;i=nxt[i])if(dis[v=to[i]]>dis[k]+w[i]){dis[v]=dis[k]+w[i];if(!vis[v]){q.push(v);cnt[v]++;if(cnt[v]==n) return -1;}}}return dis[n]==INF?-2:dis[n]; } int main() {n=rdn(); ml=rdn(); md=rdn();for(int i=1,u,v,z;i<=ml;i++){u=rdn(); v=rdn(); z=rdn();add(u,v,z);}for(int i=1,u,v,z;i<=md;i++){u=rdn(); v=rdn(); z=rdn();add(v,u,-z);}for(int i=2;i<=n;i++) add(i,i-1,0);printf("%lld\n",spfa());return 0; }
转载于:https://www.cnblogs.com/Narh/p/9704776.html
bzoj 1731 [Usaco2005 dec]Layout 排队布局——差分约束相关推荐
- bzoj 1731: [Usaco2005 dec]Layout 排队布局【差分约束】
差分约束裸题,用了比较蠢的方法,先dfs_spfa判负环,再bfs_spfa跑最短路 注意到"奶牛排在队伍中的顺序和它们的编号是相同的",所以\( d_i-d_{i-1}>= ...
- bzoj 1673: [Usaco2005 Dec]Scales 天平(DFS)
1673: [Usaco2005 Dec]Scales 天平 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 695 Solved: 253 [Subm ...
- bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士(BFS)
1671: [Usaco2005 Dec]Knights of Ni 骑士 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 416 Solved: 26 ...
- bzoj 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚(DP)
1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 941 Solved ...
- bzoj 3436: 小K的农场(差分约束)
3436: 小K的农场 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1824 Solved: 810 [Submit][Status][Disc ...
- BZOJ 1673 [Usaco2005 Dec]Scales 天平:dfs 启发式搜索 A*搜索
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1673 题意: 有n个砝码(n <= 1000),重量为w[i]. 你要从中选择一些砝 ...
- bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士
题目链接 题目背景: 贝茜遇到了一件很麻烦的事:她无意中闯入了森林里的一座城堡,如果她想回家,就必须穿过这片由骑士们守护着的森林.为了能安全地离开,贝茜不得不按照骑士们的要求,在森林寻找一种特殊的灌木 ...
- BZOJ.4500.矩阵(差分约束 SPFA判负环 / 带权并查集)
BZOJ 差分约束: 我是谁,差分约束是啥,这是哪 太真实了= = 插个广告:这里有差分约束详(并不)解. 记\(r_i\)为第\(i\)行整体加了多少的权值,\(c_i\)为第\(i\)列整体加了多 ...
- EasyUI -- Layout(布局)
第一章 介绍 EasyUI – Layout(布局)将布局容器分成了5个区域,分别是:east(东).west(西).south(南).north(北)和center(中).center(中)区域是必 ...
最新文章
- 敏捷项目管理工具实践
- python软件使用教程-python用什么软件编写
- 详解SOA五种基本架构模式
- dockerfile php环境变量,docker - 在Dockerfile中,如何更新PATH环境变量?
- python while 循环 if elif else 判断
- java 获取光标_如何在java中使用Windows API获取当前鼠标光标类型?
- C++ String封装
- 基于c的xml文件解析(转)
- 计算机上64位数和32位数,一不小心就蓝屏?安装win10系统和软件,你选32位还是64位?...
- 1481c语言合法标识符,c语言试题答案集
- 计算机的串口波特率,串口常用参数
- 前端性能优化gzip压缩
- set_ideal_network和set_dont_touch_network
- 40G SR4 vs 40G BIDI vs 40G UNIV:你选哪个?
- 微信联合登录全攻略,早期测试用户的详尽经验总结!
- [转]不是高手别碰我,VIM怎么舍得我难过
- 微信小程序跳过第三方的_微信小程序可以跳转第三方页面吗
- #include ““和#include <>区别
- firm,company, corporation, enterprise, group等的区别
- javascript案例5——壁纸切换、背景换肤
热门文章
- 华为云王红新_Veritas与华为云签署合作谅解备忘录推进云数据安全进阶
- 目标检测--Beyond Skip Connections: Top-Down Modulation for Object Detection
- 【Dual-Path-RNN-Pytorch源码分析】Segmentation
- Linux初学(Linux命令行的使用)
- centos创建禁止登录用户
- Vue打包之后会出现.map文件用处
- Redisson 分布式锁源码 11:Semaphore 和 CountDownLatch
- 2、使用 kubeadm 方式快速部署K8S集群
- MySQL手机统计信息_MySQL统计信息
- katalon进行app测试_使用Katalon Studio创建你的第一个API测试