[Bzoj1731]排队布局
洛谷上的翻译是真的哲学♂♂♂
个人认为这题充其量也就是个蓝(nan)题,首先处理-1的情况,-1的情况是不等式组无解,按照差分约束的规则,无解说明出现了负环,先跑一遍以0为源点的SPFA判断有无负环即可。再来处理-2的情况,结果为-2就说明1号和n号节点不存在直接的或间接的约束关系,所以我们跑一遍以1为源点SPFA看1到n连不连通即可。最后如果答案不为-1和-2,那么dist[n]就是答案啦。~~~♂♂♂♂♂♂♂♂♂
参考程序如下:
#include<iostream>
#include<cstring>
#include<queue>
#define inf 336860180
using namespace std;
int n,ml,md,v[],w[],head[],nxt[],cnt,ring[],dist[],a,b,d;
bool vis[];
void add(int a,int b,int c)
{
v[++cnt]=b;
w[cnt]=c;
nxt[cnt]=head[a];
head[a]=cnt;
}
bool spfa(int s)
{
memset(dist,,sizeof(dist));
memset(ring,,sizeof(ring));
dist[s]=;
queue<int>q;
q.push(s);
vis[s]=;
while(!q.empty())
{
int c=q.front();
q.pop();
vis[c]=;
ring[c]++;
if(ring[c]==n)return ;
for(int i=head[c];i;i=nxt[i])
{
int y=v[i];
if(dist[y]>dist[c]+w[i])
{
dist[y]=dist[c]+w[i];
if(!vis[y])
{
q.push(y);
vis[y]=;
}
}
}
}
return ;
}
int main()
{
cin>>n>>ml>>md;
for(int i=;i<=ml;i++)
{
cin>>a>>b>>d;
add(a,b,d);
}
for(int i=;i<=md;i++)
{
cin>>a>>b>>d;
add(b,a,-d);
}
for(int i=;i<=n;i++)add(,i,);
if(spfa())
{
cout<<"-1";
return ;
}
spfa();
if(dist[n]==inf)
{
cout<<"-2";
return ;
}
cout<<dist[n]<<endl;
return ;
}
[Bzoj1731]排队布局的更多相关文章
- 【BZOJ1731】[Usaco2005 dec]Layout 排队布局 差分约束
[BZOJ1731][Usaco2005 dec]Layout 排队布局 Description Like everyone else, cows like to stand close to the ...
- 【bzoj1731】Layout 排队布局
1731: [Usaco2005 dec]Layout 排队布局 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 868 Solved: 495[Subm ...
- 1731: [Usaco2005 dec]Layout 排队布局*
1731: [Usaco2005 dec]Layout 排队布局 题意: n头奶牛在数轴上,不同奶牛可以在同个位置处,编号小的奶牛必须在前面.m条关系,一种是两头奶牛距离必须超过d,一种是两头奶牛距离 ...
- 排队(BZOJ1731:[Usaco2005 dec]Layout 排队布局)
[问题描述] Czy喜欢将他的妹子们排成一队.假设他拥有N只妹纸,编号为1至N.Czy让他们站成一行,等待自己来派送营养餐.这些妹纸按照编号大小排列,并且由于它们都很想早点吃饭,于是就很可能出现多只妹 ...
- [bzoj1731] [Usaco2005 dec]Layout 排队布局
差分约束系统...因为题目要求的是1和n的最大距离所以这题就跑最长路.. 对于互相反感的牛(i与j互相反感,彼此距离至少为len,i<j),就有dis[j]-dis[i]>=len.就加一 ...
- BZOJ1731:[USACO]Layout 排队布局(差分约束)
Description Like everyone else, cows like to stand close to their friends when queuing for feed. FJ ...
- [Usaco2005 dec]Layout 排队布局 差分约束
填坑- 差分约束一般是搞一个不等式组,求xn-x1的最大最小值什么的,求最大值就转化成xa<=xb+w这样的,然后建图跑最短路(这才是最终约束的),举个例子 x1<=x0+2x2<= ...
- bzoj 1731: [Usaco2005 dec]Layout 排队布局 ——差分约束
Description 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些.FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食.奶牛排在队伍中的顺序和它们的编号是相 ...
- 【BZOJ】1731: [Usaco2005 dec]Layout 排队布局
[题意]给定按编号顺序站成一排的牛,给定一些约束条件如两牛距离不小于或不大于某个值,求1和n的最大距离.无解输出-1,无穷解输出-2. [算法]差分约束+最短路 [题解]图中有三个约束条件,依次分析: ...
随机推荐
- 记录几个ui框架
Web前端领域最近几年发展的特别迅速,可以说是百家争鸣.Web前端框架就是为了节约开发成本和时间,一般开发一个项目都会用到前端框架(除非自己有前端开发团队).对于现在的开发者来说,都向着全栈方向发展, ...
- Nginx处理前端跨域(补充)
在之前的博客中提到了用nginx来处理前后端跨域问题,用Nginx代理请求,处理前后端跨域 ,虽然解决当时了问题,但是在实际使用中还是不好用,当时应对的只是对单接口的处理,如果一个页面需要调用两个不同 ...
- .net core api迁移 3.0后Post 405 Method Not Allowed
问题由来:.net core api之前是用 .net core 2.0开发的,测试过都是正常的,近期升级到了3.0,发现api get正常,post提示400,405 Method Not Allo ...
- 动态规划—distinct-subsequences
题目: Given a string S and a string T, count the number of distinct subsequences of T in S. A subseque ...
- AOP切面详解
一.spring-aop.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns= ...
- Sass:@at-root
@at-root 从字面上解释就是跳出根元素.当你选择器嵌套多层之后,想让某个选择器跳出,此时就可以使用 @at-root.来看一个简单的示例: .a { color: red; .b { color ...
- ltp-ddt eth_switch_config学习
# @name ALE Table test using SWITCH-CONFIG # @desc Checks default entries in ALE table and verifies ...
- CH5E26 扑克牌 (计数类DP)
$ CH~5E26~\times ~ $ 扑克牌: (计数类DP) $ solution: $ 唉,计数类DP总是这么有套路,就是想不到. 这道题我们首先可以发现牌的花色没有价值,只需要知道每种牌有 ...
- Java常用类库API之数字处理工具类
数字处理工具类BigDecimal和DecimalFormat Java提供的java.text.DecimalFormat类,帮助我们用最快的速度将数据格式化为我们想要的样子.例如,取两位小数 im ...
- string 、char* 、 char []的转换
1.string->char* (1)data string s = "goodbye"; const char* p=str.data(); (2)c_str() stri ...