bzoj 1731: [Usaco2005 dec]Layout 排队布局【差分约束】

差分约束裸题,用了比较蠢的方法,先dfs_spfa判负环,再bfs_spfa跑最短路
注意到“奶牛排在队伍中的顺序和它们的编号是相同的”,所以\( d_i-d_{i-1}>=0 \),连(i,i-1,0);然后对于\( d_i-d_j<=L \),连(j,i,L);对于\( d_i-d_j>=D --> d_j-d_i<=-D \),连(i,j,-D)
然后先判负环再跑最短路即可

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
const int N=100005,inf=1e9;
int n,l,d,h[N],cnt,dis[N];
bool v[N],flg;
struct qwe
{int ne,to,va;
}e[N*3];
int read()
{int r=0,f=1;char p=getchar();while(p>'9'||p<'0'){if(p=='-')f=-1;p=getchar();}while(p>='0'&&p<='9'){r=r*10+p-48;p=getchar();}return r*f;
}
void add(int u,int v,int w)
{cnt++;e[cnt].ne=h[u];e[cnt].to=v;e[cnt].va=w;h[u]=cnt;
}
void spfa(int u)
{if(flg)return;v[u]=1;for(int i=h[u];i;i=e[i].ne)if(dis[e[i].to]>dis[u]+e[i].va){if(v[e[i].to]){flg=1;return;}else{dis[e[i].to]=dis[u]+e[i].va;spfa(e[i].to);}}v[u]=0;
}
int main()
{n=read(),l=read(),d=read();for(int i=1;i<=l;i++){int x=read(),y=read(),z=read();add(x,y,z);}for(int i=1;i<=d;i++){int x=read(),y=read(),z=read();add(y,x,-z);}for(int i=2;i<=n;i++)add(i,i-1,0);for(int i=1;i<=n&&!flg;i++)spfa(i);if(flg){puts("-1");return 0;}memset(v,0,sizeof(v));for(int i=1;i<=n;i++)dis[i]=inf;queue<int>q;v[1]=1,dis[1]=0,q.push(1);while(!q.empty()){int u=q.front();q.pop();v[u]=0;for(int i=h[u];i;i=e[i].ne)if(dis[e[i].to]>dis[u]+e[i].va){dis[e[i].to]=dis[u]+e[i].va;if(!v[e[i].to]){v[e[i].to]=1;q.push(e[i].to);}}}printf("%d\n",dis[n]==inf?-2:dis[n]);return 0;
}

转载于:https://www.cnblogs.com/lokiii/p/9191549.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从GPT-3到DETR,一起来盘点2020有哪些突破?

来源&#xff1a;深度学习技术前沿2020年是巨大飞跃的一年。从OpenAI的GPT-3&#xff0c;再到AlphaFold&#xff0c;都是令人振奋的成就。与此同时&#xff0c;数据科学在机器学习、自然语言处理&#xff08;NLP&#xff09;、计算机视觉等领域中蓬勃发展。一起来逐一盘点2020的…

java script 技巧_java script 技巧

事件源对象event.srcElement.tagNameevent.srcElement.type捕获释放event.srcElement.setCapture();event.srcElement.releaseCapture();事件按键event.keyCodeevent.shiftKeyevent.altKeyevent.ctrlKey事件返回值event.returnValue鼠标位置event.xevent.y窗体活动元素document…

个人作业5——软工个人总结

一、请回望开学时的第一次作业&#xff0c;你对于软件工程课程的想象 对比开篇博客你对课程目标和期待&#xff0c;“希望通过实践锻炼&#xff0c;增强计算机专业的能力和就业竞争力”&#xff0c;对比目前的所学所练所得&#xff0c;在哪些方面达到了你的期待和目标&#xff…

我国5G基站达71.8万个,助力人工智能发展!

来源&#xff1a;新华社2020中国人工智能高峰论坛暨中国人工智能大赛成果发布会23日在厦门举办。论坛上&#xff0c;中国工业和信息化部副部长刘烈宏介绍&#xff0c;截至今年11月&#xff0c;我国累计建成5G基站71.8万个&#xff0c;为人工智能海量数据的成长和传输提供了坚实…

java如何对list进行排序_java中如何对list进行排序

java类中用Collections的sort方法对一个list进行排序&#xff0c;比较简单先建一个User对象public class User {public String name;public Integer age;public Integer getAge() {return age;}public void setAge(Integer age) {this.age age;}public String getName() {retu…

LR中url和html两种录制模式

http://www.cnblogs.com/fnng/archive/2013/02/28/2937805.html转载于:https://www.cnblogs.com/zzzao/p/9196044.html

《自然》预测2021年值得关注的科学事件

来源&#xff1a;世界科技研究与发展作者&#xff1a;黄小容2020年12月22日&#xff0c;Nature官网发布了对2021年最值得关注科学事件的预测。1 气候变化问题卷土重来

Leetcode--3. 无重复字符的最长子串

给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符…

java语言_java语言学习

现在最流行的编程语言就是java了&#xff0c;学习java要怎样学习&#xff0c;有要注意哪些呢&#xff1f;首先要确定学习将来要干嘛&#xff0c;确定好之后就一直朝着这个方向努力&#xff0c;不放弃就行了。首先&#xff0c;需要明确的是Java已经不是一门简单的语言&#xff0…

重磅!基金委发布科研不端行为调查处理办法

编辑 ∑Gemini来源&#xff1a;国家自然科学基金委关于印发《国家自然科学基金项目科研不端行为调查处理办法》的通知国科金发诚〔2020〕96号各局&#xff08;室&#xff09;、科学部&#xff0c;机关党委&#xff0c;各直属单位&#xff1a;《国家自然科学基金项目科研不端行为…

Leetcode--16. 最接近的三数之和

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数&#xff0c;使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如&#xff0c;给定数组 nums [-1&#xff0c;2&#xff0c;1&#xff0c;-4], 和 target 1…

洛谷 P1377 [TJOI2011]树的序 解题报告

P1377 [TJOI2011]树的序 题目描述 众所周知&#xff0c;二叉查找树的形态和键值的插入顺序密切相关。准确的讲&#xff1a;1、空树中加入一个键值\(k\)&#xff0c;则变为只有一个结点的二叉查找树&#xff0c;此结点的键值即为\(k\)&#xff1b;2、在非空树中插入一个键值\(k\…

不能编程、烧钱、没用?潘建伟直播回应“九章”量子计算争议

来源&#xff1a;腾讯科技在200秒时间内&#xff0c;76个光子穿过中国科学技术大学潘建伟团队精心构筑的光学网络&#xff0c;完成了5000万个样本的高斯玻色采样。而同样一道数学题交给世界上最顶尖 的超级计算机“富岳”&#xff0c;需要6亿年&#xff0c;差距超过了百万亿&a…

Leetcode--209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组&#xff0c;返回 0。 示例: 输入: s 7, nums [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组…

java 继承类_java类的继承

继承就是在一个现有类型的基础上&#xff0c;通过增加新的方法或者重定义已有方法(重写)的方式&#xff0c;产生一个新的类型。继承是面向对 象的三个基本特征——封装、继承、多态的其中之一&#xff0c;我们在使用java时编写的每一个类都是在继承&#xff0c;因为在java语言 …

Leetcode--287. 寻找重复数

给定一个包含 n 1 个整数的数组 nums&#xff0c;其数字都在 1 到 n 之间&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设只有一个重复的整数&#xff0c;找出这个重复的数。 示例 1: 输入: [1,3,4,2,2] 输出: 2 示例 2: 输入: [3,1,3,4…

2021年,神经科学AI有这几大趋势

来源&#xff1a;The Next Web作者&#xff1a;Tristan Greene编译&#xff1a;科技行者新的一年正向我们招手。延续优良的革命传统&#xff0c;又到了发布最新一期AI专家预测报告的时候。各位受访专家将结合自己的所感所知、实验室发现以及企业动态为我们预测新一年中人工智能…

深度遍历和广度遍历

深度优先 例如下图&#xff0c;其深度优先遍历顺序为 1->2->4->8->5->3->6->7 广度优先 如下图&#xff0c;其广度优先算法的遍历顺序为&#xff1a;1->2->3->4->5->6->7->8 转载于:https://www.cnblogs.com/bigman-bugman/p/920252…

java ejb项目_Maven创建EJB项目结构

可以用maven创建EJB项目的结构。1、打开cmd2、输入一下内容mvn archetype:generate -DarchetypeGroupIdorg.codehaus.mojo.archetypes -DarchetypeArtifactIdpom-root -DarchetypeVersion1.1 -DarchetypeRepositoryhttp://repo.maven.apache.org/maven2 -DgroupIdcom.XXX -Dart…

2020年人工智能十大技术进展

pixabay.com来源&#xff1a;知识分子 撰文 &#xff1a; 全体智源学者制版编辑&#xff1a;卢卡斯编者按编者按2020年即将过去&#xff0c;今年人工智能领域有哪些重大进展&#xff1f;位于北京的智源人工智能研究院请 “智源学者” 们从全球的研究成果中评选了一份年度成就名…