国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JZOJ 3640. 【COCI2014】utrka

2019-11-06 06:27:37
字體:
來源:轉載
供稿:網友

Description

這里寫圖片描述

Input

這里寫圖片描述

Output

這里寫圖片描述

Sample Input

輸入1:

3 4

1 2 3 0

2 3 3 0

3 1 0 100

2 1 0 4

輸入2:

5 7

1 2 4 1

2 3 5 1

3 1 1 6

1 3 15 5

2 4 7 5

4 5 1 4

5 3 1 0

Sample Output

輸出1:

2 1

輸出2:

5 2

Data Constraint

2<=N<=300,2<=M<=N*(N-1)

分析

我們用f[k][i][j]表示從i到j共經過k個節點的最大權值,之后二分一下答案就好

代碼

#include <bits/stdc++.h>#define N 305#define INF -0x3f3f3f3fstruct NOTE{ int a[N][N];};NOTE f[15];NOTE map;int mid,sum,ans;int n,m;void merge(NOTE &a,NOTE b,NOTE c){ for (int s = 1; s <= n; s++) for (int i = 1; i <= n; i++) if (b.a[i][s] > INF) for (int j = 1; j <= n; j++) if (c.a[s][j] > INF) if (b.a[i][s] + c.a[s][j] > a.a[i][j]) a.a[i][j] = b.a[i][s] + c.a[s][j];}bool cheak(){ for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) if (map.a[i][j] + f[mid].a[j][i] > 0) return true; return false;}int main(){// freopen("utrka.in","r",stdin);// freopen("utrka.out","w",stdout); int k; scanf("%d%d",&n,&m); for (k = 0; k < 15; k++) for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) f[k].a[i][j] = INF; for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) map.a[i][j] = INF; for (int i = 1; i <= m; i++) { int x,y,tm,ts; scanf("%d%d%d%d",&x,&y,&tm,&ts); f[0].a[x][y] = ts - tm; } for (int i = 1; i <= n; i++) map.a[i][i] = 0, f[0].a[i][i] = 0; for (k = 1; k < 15; k++) { f[k] = f[k - 1]; merge(f[k],f[k - 1],f[k - 1]); for (int i = 1; i <= n; i++) if (f[k].a[i][i] > 0) break; if ((1 << k) > n) break; } mid = k; ans = 0; while (mid >= 0) { if (!cheak()) { merge(map,map,f[mid]); ans += (1 << mid); } mid --; } int r = 0; int l = k; while (r != l) { mid = (l + r) >> 1; if (cheak()) { l = mid; } else r = mid + 1; } merge(map,map,f[r]); ans += (1 << r);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲阳县| 河池市| 清水河县| 沐川县| 化隆| 宣汉县| 桑植县| 久治县| 北安市| 武汉市| 越西县| 临夏市| 泸溪县| 台山市| 尉犁县| 阳东县| 庆安县| 岳普湖县| 镇平县| 阿鲁科尔沁旗| 汝南县| 青神县| 资溪县| 天津市| 靖江市| 永德县| 宝山区| 封丘县| 永州市| 梅州市| 石门县| 舒城县| 定陶县| 革吉县| 久治县| 武安市| 隆子县| 绥棱县| 凉城县| 万荣县| 尤溪县|