題解 JOISC 2016 Day 3 電報

2022-05-01 19:54:12 字數 898 閱讀 5152

題目傳送門

給出乙個\(n\)個點\(n\)條邊的圖,每個點有且僅有乙個出邊,改變每條邊都會有對應的花費。求最小的花費使得整個圖強連通。

很顯然,最後的圖就是乙個環。那我們要求的答案實際上就是鏈的最大權值之和。

我們再次將問題轉換,發現就是每個點只保留一條邊,而保留的邊就是連向它的邊權最大的邊。但是我們發現這實際上還有問題,因為這樣仍可以構成乙個環,那我們就選環上乙個點斷開再選一條不在環上且邊權最大的邊即可。

#include using namespace std;

#define int register int

#define ll long long

#define maxn 100005

template inline void read (t &t)while (c >= '0' && c <= '9') t *= f;}

template inline void read (t &t,args&... args)

template inline void write (t x)if (x > 9) write (x / 10);putchar (x % 10 + '0');}

ll ans;

int n,a[maxn],c[maxn],cm[maxn],ncm[maxn],vis[maxn];

signed main()

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

for (int i = 1;i <= n;++ i) ans -= cm[i];

for (int i = 1;i <= n;++ i) if (vis[i] == -1)

write (ans),putchar ('\n');

return 0;

}

JOISC 2016 Day 3 迴轉壽司

joisc 2016 day 3 迴轉壽司 這題我無力吐槽了.強烈譴責出題人用腳造資料 其實這題主要還是部分分啟發正解吧。看到有個 s i 1,t i n 的做法就是維護乙個堆就可以了,所以擴充套件下就是分塊,然後每個塊維護乙個堆。散塊暴力,大塊直接查。但是有個很坑爹的問題在於,對於整塊的部分我們沒...

JOISC 2016 Day 4 最差記者 2

考慮乙個小貪心。將 2 小時和 5 小時的節點放在一起按分數從小到大排序,如果分數相同則將 2 小時的節點放在前面。然後對於每個 5 小時節點,我們找到未匹配的且分數最大的且國籍相同的 2 小時節點並且將它與該節點匹配。但是我們會發現乙個問題。這麼做了之後剩下的點可能不能夠互相匹配。否則,那麼答案就...

數論Day3 進製問題 題解

數論進入第三天,進製問題是常用提醒,是數論的乙個重要知識點,常考!題面 首先明確資料範圍 資料規模和約定 對於40 的資料,a的長度不超過5。對於100 的資料,a的長度不超過 100000 對於40 暴力列舉不多說,上 var t,i,k,tt longint a qword s string f...