51nod 1340 差分约束
思路:
带未知量的Floyd
很强
http://yousiki.net/index.php/archives/87/
//By SiriusRen
#include <bits/stdc++.h>
using namespace std;
const int B=;
int cases,n,m1,m2,xx,yy,zz;
typedef long long ll;
ll f[][][],l,r,inf;
void up(ll &x,ll y){x=min(x,y);}
signed main(){
scanf("%d",&cases);
while(cases--){
memset(f,0x3f,sizeof(f));
scanf("%d%d%d",&n,&m1,&m2),l=n,r=inf=f[][][];
for(int i=;i<=n;i++)f[i][i][B]=,i?f[i][i-][B]=-:;
up(f[][n][B+],);up(f[n][][B-],);
for(int i=;i<=m1;i++)scanf("%d%d%d",&xx,&yy,&zz),up(f[yy][xx][B+(xx>=yy)],-zz);
for(int i=;i<=m2;i++)scanf("%d%d%d",&xx,&yy,&zz),up(f[xx][yy][B-(xx>=yy)],zz);
for(int i=;i<=n;i++)for(int j=;j<=n;j++)for(int x=-B;x<=B;x++)if(f[j][i][x+B]<inf)
for(int k=;k<=n;k++)for(int y=max(-B,-B-x);y<=B&&x+y<=B;y++)if(f[i][k][y+B]<inf)
up(f[j][k][x+y+B],f[j][i][x+B]+f[i][k][y+B]);
for(int i=;i<=n;i++)for(int j=;j<=*B;j++){
if(j==B){if(f[i][i][j]<){puts("");goto be;}}
else if(f[i][i][j]<inf)j>B?l=max(l,(-f[i][i][j]-)/(j-B)+):r=min(r,-f[i][i][j]/(j-B));
}printf("%lld\n",r==inf?-:(l<=r?r-l+:));be:;
}
}
51nod 1340 差分约束的更多相关文章
- Candies-POJ3159差分约束
Time Limit: 1500MS Memory Limit: 131072K Description During the kindergarten days, flymouse was the ...
- poj3159 差分约束 spfa
//Accepted 2692 KB 1282 ms //差分约束 -->最短路 //TLE到死,加了输入挂,手写queue #include <cstdio> #include & ...
- ZOJ 2770火烧连营——差分约束
偶尔做了一下差分约束. 题目大意:给出n个军营,每个军营最多有ci个士兵,且[ai,bi]之间至少有ki个士兵,问最少有多少士兵. ---------------------------------- ...
- POJ 2983 Is the Information Reliable? 差分约束
裸差分约束. //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #i ...
- 2014 Super Training #6 B Launching the Spacecraft --差分约束
原题:ZOJ 3668 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3668 典型差分约束题. 将sum[0] ~ sum ...
- POJ 1364 King --差分约束第一题
题意:求给定的一组不等式是否有解,不等式要么是:SUM(Xi) (a<=i<=b) > k (1) 要么是 SUM(Xi) (a<=i<=b) < k (2) 分析 ...
- [USACO2005][POJ3169]Layout(差分约束)
题目:http://poj.org/problem?id=3169 题意:给你一组不等式了,求满足的最小解 分析: 裸裸的差分约束. 总结一下差分约束: 1.“求最大值”:写成"<=& ...
- ShortestPath:Layout(POJ 3169)(差分约束的应用)
布局 题目大意:有N头牛,编号1-N,按编号排成一排准备吃东西,有些牛的关系比较好,所以希望他们不超过一定的距离,也有一些牛的关系很不好,所以希望彼此之间要满足某个关系,牛可以 ...
- 【BZOJ】2330: [SCOI2011]糖果(差分约束+spfa)
http://www.lydsy.com/JudgeOnline/problem.php?id=2330 差分约束运用了最短路中的三角形不等式,即d[v]<=d[u]+w(u, v),当然,最长 ...
随机推荐
- linux find-在指定目录下查找文件
推荐:更多Linux 文件查找和比较 命令关注:linux命令大全 find命令用来在指定目录下查找文件.任何位于参数之前的字符串都将被视为欲查找的目录名.如果使用该命令时,不设置任何参数,则find ...
- mac下用crontab实现pytho3脚本自动定期执行,包括scrapy的定期执行
呃 其实要明天上午才能知道是否成功,毕竟改了一个小参数的. 首先,来学两个小命令: step1: $ sudo crontab -e step2: # 然后提示password输入密码,即可进入编辑页 ...
- day21 02 包的进阶
day21 02 包的进阶 1._init_.py文件的操作---导入包 根据day21 01 包的初识,建立的glance包,直接import glance后通过“包点包..点方法”是不能执行所要的 ...
- kata练习题
This time no story, no theory. The examples below show you how to write function accum: Examples: ac ...
- 【模板】网络流-最大流 Dinic
洛谷 3376 #include<cstdio> #include<algorithm> #include<cstring> #define N 10010 #de ...
- MySQL 乐观锁和悲观锁
前言 1)在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和一致性以及数据库的一致性. 2)加锁是为了解决更新丢失问题 ...
- 【C++】实现记录软件计时时间
利用getTickCount()和getTickFrequency()函数实现计时 double time0 = static_cast<double>(getTickCount()); ...
- hdu 1269 求连通图的模板题
#include<stdio.h> #include<string.h> #include<iostream>//只存在一个连通分量 #include<str ...
- CF558E A simple task 线段树
这道题好猥琐啊啊啊啊啊啊 写了一个上午啊啊啊啊 没有在update里写pushup啊啊啊啊 题目大意: 给你一个字符串s,有q个操作 l r 1 :把sl..rsl..r按升序排序 l r 0 :把s ...
- [USACO09JAN]全流Total Flow
题目描述 Farmer John always wants his cows to have enough water and thus has made a map of the N (1 < ...