HDU 3986 去掉一條邊 使最短路最大

2021-10-22 08:01:45 字數 1012 閱讀 1287

一直沒想到怎麼做因為複雜度標程也是卡過去的估計= =

如果按照一條直線出資料的話那就是

20 * (5e4 + 1000) * (5e4 + 1000) / 2 * log(5e4)

很明顯爆掉了。。。

但是事實就是只要遍歷最短路的就完事了

#include

#include

#include

#include

#define x first

#define y second

using

namespace std;

const

int n =

1e3+

10,m =

1e5+10;

int head[n]

,to[m]

,last[m]

,w[m]

,cnt,shang[m]

,sha[m]

;void

add(

int a,

int b,

int c)

typedef pair<

int,

int> pii;

int flag[n]

,dist[n]

;void

dij(

int f));

dist[1]

=0;while

(q.size()

));if

(f)}}}

}int

main()

dij(1)

;int minn =0;

for(

int i = n; i !=-1

; i = shang[i])if

(minn !=

0x3f3f3f3f

) cout << minn << endl;

else cout <<-1

<< endl;

}return0;

}

hdu 3986 最短路 列舉)

思路 先spfa求出最短路,然後列舉刪除最短路上的邊,每次刪除一條邊,就求一次最短路,然後去最大的那個就行了。可以重邊的問題沒考慮完善,wa了好多次啊!1 include2 include3 include4 include5 using namespace std 6const int maxn ...

hive 去掉重複資料,僅顯示需要一條

select count 1 count distinct student no from select cj.student no if cj.kpi year 2018 08 2018年8月前 kpi year as contract year row number over partition...

上一條記錄下一條記錄

select top 1 from 表 where id 當前id order by id desc select top 1 from 表 where id 當前id order by id desc 上一條記錄 select top 1 blogid from gcc bloginfo wher...