2019 10 03 校內模擬

2021-09-27 14:05:40 字數 3944 閱讀 6310

內網傳送門

很明顯的乙個網路流。

轉換一下題意,相當於求保留航線的最大值。所以我們把邊權取負跑最小費用流。

有乙個坑點,就是我們只需要費用最小,不要求流量最大,所以不應該用最小費用最大流

有兩個解決辦法:

最小費用可行流

連 ( i,

t,1,

0)(i,t,1,0)

(i,t,1

,0) 的邊,表示不選 i

ii 連出去的航線。

**是抄參考的這裡。

#include

#include

#include

#define n 1000005

#define ll long long

using

namespace std;

int n,t,ans,cnt,tot;

int d[n]

,q[n]

,val[n]

,lc[n]

,rc[n]

,son[n]

,l[n]

,size[n]

,root[n]

,tag[n]

;int first[n]

,v[n]

,w[n]

,nxt[n]

;ll sum[n]

;void

add(

int x,

int y,

int z)

intnewnode

(int v)

void

inorder

(int x)

void

pushup

(int x)

void

zig(

int&root)

void

zag(

int&root)

const

double alpha=

0.75

;void

insert

(int

&root,

int v)

size[root]

++,sum[root]

+=v;

if(v<=val[root]

)insert

(lc[root]

,v),

(size[lc[root]

]>=size[root]

*alpha)?(

zig(root),1

):1;

else

insert

(rc[root]

,v),

(size[rc[root]

]>=size[root]

*alpha)?(

zag(root),1

):1;

}void

join

(int u,

int v,

int w)

ll query

(int root,

int v)

bool

check

(int u,

int time)

void

solve

(int x)

}void

dfs1

(int x,

int fa)

}void

dfs2

(int x,

int fa)

solve

(x);

}int

main()

dfs1(1

,0),

dfs2(1

,0);

printf

("%d\n"

,ans)

;return0;

}

校內模擬 鎖

沒有標籤是因為我真的不知道這算什麼型別 這題我說不來大意你們還是看題面描述吧 小z住的房子一共有n個人,他們每人有乙個重要度。房子的門上可以裝若干把鎖。假設共有k把鎖,命名為1到k。每把鎖有一種對應的鑰匙,也用1到k表示。鑰匙可以複製若干份並發給任意多個居民。每個人都可以持有若干鑰匙,可以不持有鑰匙...

校內模擬 assignment(DP)

題面見校內oj4693 考慮預處理f k i j f k i j f k i j 表示最長的一段不超過k kk的時候,將長度為i ii的序列分為j jj段的方案數。在k kk相同的狀態之間轉移,顯然有f i j f i 1 j f i 1 j 1 f i k 1 j 1 f i j f i 1 j ...

2019 10 12 校內模擬

內網傳送門 今天考 noip 模擬,拿了 270 27027 0 分,我要膨脹了。主要還是運氣好,t3 做過原題,t2 算是某道題的弱化版,t1 推了個結論用 o n log 2n o n log 2n o nlog2n 水過了 106 10 6 106 的資料。這題其實挺簡單的,把圖的點雙求出來之...