loj6045 雅禮集訓 2017 Day8 價

2022-03-03 22:37:44 字數 922 閱讀 3658

我們考慮最小割。

我一開始覺得是裸的最小割,就直接s到每個**藥連up+p[i]的邊,**藥到藥材連inf邊,藥材到t連up,然後得到了40分的好成績。

之後我發現這是乙個假的最小割,最小割割的是代價或者得不到的收益,上面說的這種建圖左邊割掉的是收益,右邊割掉的是代價,然後當然就gg了。

所以我們把p取相反數,因為有負權,我們在給所有邊加上乙個up,之後就可以直接建圖最小割了。

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7

#define up 2000000

8#define inf 0x7fffffff

9#define n 666

10using

namespace

std;

11int e=2

,head[n];

12struct

edgeed[n*n];

15void add(int u,int v,int

f)21

intn,ans,s,t,dep[n];

22bool

bfs()33}

34}35return0;

36}37int dfs(int x,int

f)46}47

if(!ans)dep[x]=-1;48

return

ans;49}

50int

dinic()

55int

main()65}

66for(int i=1,x;i<=n;i++)

72 ans+=dinic();

73 printf("

%d\n

",ans);

74 }

view code

LOJ6045 雅禮集訓 2017 Day8 價

標籤 最小割,網路流 題目傳送門 30分 爆搜 40分 加乙個特判 全部取 因為pi小於0 正解 最小割建圖 源點s向每個 藥連一條流量為pi inf的邊 藥向其對應的藥材連一條流量為inf的邊 每個藥材向匯點t連一條流量為inf的邊 然後跑dinic 因為存在負邊權,那麼要加入sum計算進入 藥的...

雅禮集訓 2017 價

傳送門 乙個不太顯然的最小割做法。我們這麼連邊 源點向藥物連 infty p i 容量的邊,藥物向它對應的藥材連 infty 容量的邊,藥材向匯點連 infty 容量的邊。用源點的流量減去最小割,再負回來就可以求出答案了。怎麼理解呢?割掉一條邊表示不選其對應的藥物或藥材,我們發現最後的方案一定是完美...

2017國慶雅禮集訓 長沙雅禮划水記

一題給出數軸上 n 個座標xi 有權值w i 求由 x i xj wi wj 連邊構成的最大團。這個式子長得太像兩圓相離或外切的表示了 連數軸都告訴你了呀 於是瞬間變成取最多不重區間的水題。然而我居然忘了還有右端點排序後o n 的簡單貪心,寫了個o n2 的dp加二分優化 我太鹹啦 好在總複雜度還是...