P4878 [USACO05DEC]layout布局

差分约束

最短路径最长路,最长路径最短路

本题求的是最长路径,所以跑最短路

根据题意连边,然后spfa即可

注意要判断图的连通性,所以新建一个虚拟节点n+1,先跑一次检查是否合法

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<queue>
#include<cctype>
using namespace std;
template <typename T> inline void read(T &x){
char c=getchar(); x=;
while(!isdigit(c)) c=getchar();
while(isdigit(c)) x=(x<<)+(x<<)+(c^),c=getchar();
}
int n,m1,m2,d[],vis[]; bool inh[];
int cnt,hd[],nxt[],ed[],poi[],val[];
inline void add(int x,int y,int v){
nxt[ed[x]]=++cnt; hd[x]= hd[x] ? hd[x]:cnt;
ed[x]=cnt; poi[cnt]=y; val[cnt]=v;
}
void spfa(int s){ //普通的spfa
memset(d,,sizeof(d));
memset(vis,,sizeof(vis));
queue <int> h;
h.push(s); d[s]=; vis[s]=; inh[s]=;
while(!h.empty()){
int x=h.front(); h.pop(); inh[x]=;
for(int i=hd[x];i;i=nxt[i])
if(d[x]+val[i]<d[poi[i]]){
d[poi[i]]=d[x]+val[i];
vis[poi[i]]=vis[x]+;
if(vis[poi[i]]>n) {printf("-1"); exit();}
if(!inh[poi[i]]) h.push(poi[i]),inh[poi[i]]=;
}
}
}
int main(){
read(n); read(m1); read(m2); int q1,q2,q3;
for(int i=;i<=m1;++i) read(q1),read(q2),read(q3),add(q1,q2,q3);
for(int i=;i<=m2;++i) read(q1),read(q2),read(q3),add(q2,q1,-q3);
for(int i=;i<=n;++i) add(n+,i,);
spfa(n+); spfa();
if(d[n]==d[]) printf("-2");
else printf("%d",d[n]);
return ;
}

P4878 [USACO05DEC]layout布局的更多相关文章

  1. 洛谷 P4878 [USACO05DEC]layout布局

    题面链接 sol:差分约束系统裸题,根据a+b<=c建个图跑个最短路就没了... #include <queue> #include <cstdio> #include ...

  2. 洛谷P4878 [USACO05DEC]layout布局

    题目描述 正如其他物种一样,奶牛们也喜欢在排队打饭时与它们的朋友挨在一起.\(FJ\) 有编号为 \(1\dots N\) 的 \(N\) 头奶牛 \((2\le N\le 1000)\).开始时,奶 ...

  3. 新建android工程的时候eclipse没有生成MainActivity和layout布局

    一.新建android工程的时候eclipse没有生成MainActivity和layout布局 最近由于工作上的原因,开始学习Android开发,在入门的时候就遇到了不少的坑,遇到的第一个坑就是&q ...

  4. layout布局实例化

    实例化xml中的Layout布局在开发中经常会用到,有几种方法可以使用 1.在Activity中使用getLayoutInflater()方法 View layout = getLayoutInfla ...

  5. ASP.NET MVC3 系列教程 – 新的Layout布局系统

    原文地址:http://www.cnblogs.com/highend/archive/2011/04/18/asp_net_mvc3_layout.html I:回忆MVC2当中MasterPage ...

  6. Android 布局学习之——Layout(布局)具体解释二(常见布局和布局參数)

     [Android布局学习系列]   1.Android 布局学习之--Layout(布局)具体解释一   2.Android 布局学习之--Layout(布局)具体解释二(常见布局和布局參数)   ...

  7. 一天搞定CSS:支持IE的Layout布局--16

    1.BFC和Layout区别: BFC和Layout的作用是一样的,只是对浏览器的支持不同而已. BFC- -标准浏览器所具有的 Layout- -IE浏览器所具有的 BFC详解地址:http://b ...

  8. 解决thymeleaf layout布局不生效

    今天使用thymeleaf layout布局时总是不生效,特此把解决问题的步骤和几个关键点记录下来备忘. 一.检查依赖 1.thymeleaf必备maven依赖: <dependency> ...

  9. easyui中datagrid+layout布局

    1.掌握layout布局 首先,layout布局的具体使用可参考官网http://www.jeasyui.net/plugins/162.html layout布局分为东南西北中五个区域,如图我们将其 ...

随机推荐

  1. openstack 部署(Q版)-----glance镜像服务安装配置

    一.创建数据库 CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO '; GRANT ALL PRIVILEGES ON glanc ...

  2. NBUTOJ 1643 - 阶乘除法 - [数学题]

    题目链接:https://ac.2333.moe/Problem/view.xhtml?id=1643 问题描述 输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n!= 1*2*3*... ...

  3. HDU 1166 - 敌兵布阵 - [线段树][树状数组]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 Time Limit: 2000/1000 MS (Java/Others) Memory Li ...

  4. @log的decorator完美实现(原创)

    # -*- coding: utf-8 -*- from functools import wraps from inspect import isfunction def beforecalled( ...

  5. Oracle安装部署之命令建库

    1.建目录: [oracle@wen ~]$ mkdir $ORACLE_BASE/admin/rezin/{a,b,c,dp}dump -p [oracle@wen ~]$ mkdir $ORACL ...

  6. CGPoint->NSValue

    http://blog.sina.com.cn/s/blog_65a8ab5d0101c0n2.html CGPoint point = CGPointMake(self.superview.nim_ ...

  7. php Only variables can be passed by reference

    最近做项目,发现了一个报错  Only variables can be passed by reference,  意思是"只有变量能通过'引用'" 就是在代码中 使用了一个方法 ...

  8. oracle查询表结构语句

    select o.table_name, tmp.comments, o.COLUMN_NAME, t.comments, o.DATA_TYPE || CASE TRIM(o.DATA_TYPE) ...

  9. java连接数据库时的报错

    //java连接数据库时的报错 1 package Java数据库编程; import java.sql.DriverManager; import java.sql.SQLException; im ...

  10. sql优化 表连接join方式

        sql优化核心 是数据库中 解析器+优化器的工作,我觉得主要有以下几个大方面:1>扫表的方法(索引非索引.主键非主键.书签查.索引下推)2>关联表的方法(三种),关键是内存如何利用 ...