題目傳送門
給出乙個\(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...