2020年8月5日聽課筆記

聽課筆記

=======markdown

*奇環樹:找出環,斷邊變樹;;或者分兩部分
網絡

???這是markdown
!!!
函數

struct Edge{
    int from,to,dist;
    Edge(){}
//??要寫構造函數?
}

不寫了。;。學習

*Prim:
千萬不要寫register。inline還行code

priority_queue<pair<int,int>, vector<pair<int,int> >,greater<pair <int,int> > >
int prim(){
    int ans=0;
    q.push(make_pair(0,1))
}

https://www.luogu.com.cn/problem/P1265
https://www.luogu.com.cn/problem/P5687
貨車運輸:最小權值最大

災後重建 https://www.luogu.com.cn/problem/P1119
物流運輸 https://www.luogu.com.cn/problem/P1772
最優貿易 https://www.luogu.com.cn/problem/P1073
逛公園 https://www.luogu.com.cn/problem/P3953 :分層圖,額外花費=w-(d[j]-d[i])分的層(DAG)
Legacy https://www.luogu.com.cn/problem/CF786B 區間最短路
今晚搞一搞線段樹唄get

A終點未被訪問過,樹枝邊
B終點被訪問過,dfn[v]>dfnu,前向邊(
C終點已被訪問過,不在子樹中,在棧中,後向邊
D終點被訪問過,且不在子樹中,不在棧中,橫叉邊(it

*Tarjan
有向有環圖DFS找每個強連通份量
每個強連通份量高度最低的點做表明點(分割點)
(每個強聯通份量的點必定連續訪問)
分割的方法:維護一個棧(並不是DFS的棧)存放節點,離開分割點時把分割點往下的部分所有取出來就是一個強連通份量
如今須要找到這些分割點:::
。。。。。。。。。
我學廢了。晚上先搞tarjan吧io

void tarjan(int now){
    dfn[low]=low[now]=++dfscnt;
    s[stop++]=now;
    for(int i=he[how];i;i=ne[i]){
        if(!dfn[ed[i]]){
            tarjan(ed[i]);
            low[now]=min(low[now],low[ed[i]]);
        }
        else if(!)
    }
}

//抄啥,他會發的;__;
模板:
https://www.luogu.com.cn/problem/P3387模板

校園網
https://www.luogu.com.cn/problem/P2746
至少把出度爲零的點(t個)加上邊,連到入口點,總能構造一個環;
須要鏈接max(出口點數,入口點數)個邊。因此必定存在這個方案。只需求出數目。class

雙連通份量
在無向圖上。點雙聯通,邊雙聯通。
不雙聯通的話,割點(頂),割邊(橋)通常就考這個。縮完是一棵樹,很差考。

點雙聯通不知足傳遞性,邊雙聯通知足。
點雙聯通必定是邊雙聯通(無相同點的兩條路景必定無相同邊)

.....懵。.。.

換教室P1850(hard)

提升組範圍內,很難玩出什麼花,頂可能是分層圖。。本質是多保存幾個狀態。 (進一步學習網絡流以後思惟難度纔會提高

相關文章
相關標籤/搜索