洛谷1342 請柬

2022-05-21 23:24:09 字數 1154 閱讀 4120

題目大意:

給定乙個起點,求以其餘所有點分別為必經點的最短迴路之和。

思路:建立反向圖,在正反圖上分別跑一遍dijkstra,最後求和即可。

注意資料規模,要開long long不然會wa,只能拿25分。

1 #include2 #include3 #include4 #include5 inline int

getint()

12const

long

long inf=0x7fffffffffffffff;13

const

int v=1000001;14

struct

edge ;

18 std::vectore1[v],e2[v];

19 inline void add_edge(std::vector*e,const

int u,const

int v,const

long

long

w) );21}

22struct

vertex

28};

29int

n;30

long

long

dis1[v],dis2[v];

31 __gnu_pbds::priority_queue>q;

32 __gnu_pbds::priority_queue>::point_iterator p[v];

33const

int s=1

;34 inline void dijkstra(long

long *dis,std::vector*e) );38}

39while(q.top().dis!=inf) );45}

46}47q.modify(p[x],(vertex));48}

49}50int

main()

58dijkstra(dis1,e1);

59dijkstra(dis2,e2);

60long

long ans=0;61

for(register int i=2;i<=n;i++)

64 printf("

%lld\n

",ans);

65return0;

66 }

洛谷 P1342 請柬

這道題很適合作為p1629的加強版 因為這道題其實體現了反向建圖的高效性 反向建圖後 單終點最短路徑 單源最短路徑。因此兩邊dij,然後再累計和即可 部分不難弄。直接上 先說明以下程式,有1的變數名與第一次dij有關 學生出來 帶2的與第二次dij有關 學生回家 include include in...

洛谷P1342請柬

核心思想 兩遍最短路.1號點去各地的時間直接套最短路模板,各地到1號點時間用逆向思維,視為求1號點沿反邊到各地的時間即可.include include include include include define re register using namespace std const int ...

洛谷 P1342 請柬

在電視時代,沒有多少人 戲劇表演。malidinesia古董喜劇演員意識到這一事實,他們想宣傳劇院,尤其是古色古香的喜劇片。他們已經列印請帖和所有必要的資訊和計畫。許多學生被雇來分發這些請柬。每個學生志願者被指定乙個確切的公共汽車站,他或她將留在那裡一整天,邀請人們參與。這裡的公交系統是非常特殊的 ...