P6822 PA2012 Tax 最短路變形

2022-06-13 21:12:07 字數 1211 閱讀 5352

給出乙個 \(n\) 個點 \(m\) 條邊的無向圖,經過乙個點的代價是進入和離開這個點的兩條邊的邊權的較大值,求從起點 1 到點 \(n\) 的最小代價。起點的代價是離開起點的邊的邊權,終點的代價是進入終點的邊的邊權。

範圍&性質:\(1\le n\le 10^5,1\le m\le 2\times 10^5\)

暴力做法:

由於圖的權值在點上,所以考慮建一張新的圖,將點權化作邊權,相鄰兩邊之間連一條新的邊,最劣情況下空間複雜度會達到\(o(m^2)\)

優化:結合點的權值取決於入邊和出邊的最大值的性質,可以利用差分思想降低總邊數:

(我們規定新圖中點\(i\)的出邊記作\(p_i\),入邊記作\(p_\))

將原圖中每乙個點的入邊和出邊按照權值分別從小到大排序

對於原圖中的邊\(e_i\),即新圖中的\(p_i\),向\(p_\)連一條費用為二者之差的邊,再從\(p_\)向\(p_i\)連一條費用為0的邊

對於每個\(p_i\),向權值比它大的最小的\(p_\)連一條邊,費用為\(p_\)的權值,再從權值比\(p_i\)小的最大的\(p_\)向\(p_i\)連一條邊,費用為\(p_i\)的費用

這樣建圖的效果是:倘若出邊的費用小於入邊,則費用就取決於入邊,因為新圖中權值大的點通向權值小的點是免費的,反之則需要通過差額補足,總邊數便降到\(m\)級別。

#includeusing namespace std;

namespace zzc

e[maxm];

struct old_graph

bool operator <(const old_graph &b)const

};vectorp[maxn];

priority_queueq;

void add(int u,int v,long long w)

long long dis[maxn];

long long dijkstra()

}} }

void work()

ed=cnt+1;

for(int i=1;i<=n;i++)

if(pos}

} int len=p[1].size();

for(int i=0;ilen=p[n].size();

for(int i=0;iprintf("%lld\n",dijkstra()); }

}int main()

簡述CMMI2級的7個PA

乙個處於 無序化 生產的軟體公司,要進行過程改進,首要是改進什麼呢?做任何事情都需要計畫,做軟體開發這樣複雜的工作更加需要計畫,所以2級中有專案計畫 pp 以及專案計畫跟蹤與控制 pmc 兩個pa,分別對指定計畫以及計畫的執行給出了詳細的標準。人是會死的,需求是會變的。需求變更是每個軟體公司最頭疼的...

2 1 CMMI2級 7個PA簡述

摘要 階段式的cmmi沒有1級,最開始的級別就是2級。乙個處於 無序化 生產的軟體公司,要進行過程改進,首要是改進什麼呢?2級告訴你,我們需要從計畫 計畫跟蹤 需求管理 採購 度量 配置管理 質量保證入手!正文 乙個處於 無序化 生產的軟體公司,要進行過程改進,首要是改進什麼呢?做任何事情都需要計畫...

認識P2P,利用P2P

是peer to peer的縮寫 好象還看到過文章說是point to point,我也不清楚,網上的資料也不清楚,鬱悶 peer在英語裡有 地位 能力等 同等者 同事 和 夥伴 等意義。這樣一來,p2p也就可以理解為 夥伴對夥伴 的意思,或稱為對等聯網。目前人們認為其在加強網路上人的交流 檔案交換...