ref

#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
using namespace std;
typedef long long ll;
int n, m, k, uu, vv, hea[105], cnt, tot[105];
ll b[105][1005], s[105][1005], w[105][105], bst[105][105], dis[105], ww;
bool ins[105];
const ll oo=0x3f3f3f3f3f3f3f3f;
queue<int> d;
struct Edge{
int too, nxt;
ll val;
}edge[20005];
void add_edge(int fro, int too, ll val){
edge[++cnt].nxt = hea[fro];
edge[cnt].too = too;
edge[cnt].val = val;
hea[fro] = cnt;
}
bool chk(ll lim){
memset(hea, 0, sizeof(hea));
memset(dis, 0, sizeof(dis));
while(!d.empty()) d.pop();
cnt = 0;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(bst[i][j]!=-1 && w[i][j]<oo)
add_edge(i, j, bst[i][j]-lim*w[i][j]);
for(int i=1; i<=n; i++){
d.push(i);
tot[i] = ins[i] = 1;
}
while(!d.empty()){
int x=d.front();
d.pop();
ins[x] = false;
for(int i=hea[x]; i; i=edge[i].nxt){
int t=edge[i].too;
if(dis[t]<=dis[x]+edge[i].val){//这里是大于等于,零环也合法
tot[t] = tot[x] + 1;
if(tot[t]>n) return true;
dis[t] = dis[x] + edge[i].val;
if(!ins[t]){
ins[t] = true;
d.push(t);
}
}
}
}
return false;
}
int main(){
memset(w, 0x3f, sizeof(w));
memset(bst, -1, sizeof(bst));
cin>>n>>m>>k;
for(int i=1; i<=n; i++)
for(int j=1; j<=k; j++)
scanf("%lld %lld", &b[i][j], &s[i][j]);
for(int i=1; i<=n; i++)
w[i][i] = 0;
for(int i=1; i<=m; i++){
scanf("%d %d %lld", &uu, &vv, &ww);
w[uu][vv] = min(w[uu][vv], ww);
}
for(int l=1; l<=n; l++)
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
w[i][j] = min(w[i][j], w[i][l]+w[l][j]); ll l=0, r=0, mid, re;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++){
if(i!=j && w[i][j]<oo){
bst[i][j] = 0;
for(int l=1; l<=k; l++)
if(s[j][l]!=-1 && b[i][l]!=-1)
bst[i][j] = max(bst[i][j], s[j][l]-b[i][l]);
r = max(r, bst[i][j]);
}
}
while(l<=r){
mid = (l + r) >> 1;
if(chk(mid)) re = mid, l = mid + 1;
else r = mid - 1;
}
cout<<re<<endl;
return 0;
}

最新文章

  1. 熊乐:H3 BPM为加速企业流程管理提供源动力
  2. Jedis 使用范例
  3. 在ASP.NET MVC 中获取当前URL、controller、action
  4. SQL表新增触发(触发器)
  5. python与shell的3种交互方式介绍
  6. Python在Windows下安装第三方库浅谈
  7. uva 562
  8. springmvc(五)----异常处理
  9. bzoj2763
  10. (6/18)重学Standford_iOS7开发_控制器多态性、导航控制器、选项卡栏控制器_课程笔记
  11. sybase用户管理(创建、授权、删除)
  12. debia下安装libjpeg
  13. JS查找和替换字符串列子
  14. python学习随笔(三)
  15. require和require_once的区别
  16. RX系列一 | ReactiveX根源 | 观察者模式分析
  17. 哨兵模式下,master选举关键点
  18. 分布式理论(三)—— 一致性协议之 2PC
  19. [ios]ios语音识别
  20. python基础学习1-类,对象

热门文章

  1. 从零开始的全栈工程师——js篇2.5
  2. linux nginx 404错误页面设置
  3. 解决The Network Adapter could not establish the connection
  4. 利用python进行简单的图片处理
  5. 【来龙去脉系列】QRCode二维码的生成细节和原理
  6. 制作centos安装u盘
  7. jmeter之吞吐量、吞吐率、TPS、带宽及压力测试和负载测试及其区别
  8. java Vamei快速教程05 实施接口
  9. 【洛谷3275】[SCOI2011] 糖果(差分约束系统入门题)
  10. 2017.12.11 String 类中常用的方法