ac通道:
[分析]
可以發現,因為市長只會關心衝突事件影響力的最大值,所以無論你怎麼把罪犯們分開,只要衝突事件影響力最大的那兩個人還在同一所監獄,衝突事件影響力的最大值就不會改變。所以我們可以採取貪心的思想,每次將衝突事件影響力最大的兩個人分開,直到這兩個人根據前面的條件,已經分不開了,那麼最大值就是他們所能產生的影響力的最大值。
因為「分開」這個操作不好實現,所以我們設,若a,b兩個人分開,那麼a,b『就在同一所監獄中,及a,b』在同乙個集合中。將影響力按從大到小的順序排個序,每次分開兩個人a,b,都將a,b『合併,a』,b合併。若分開a,b時,發現a,b已經在同乙個集合中,那麼就直接輸出它們影響力的值。
#include #include #include using namespace std;
struct edge;
bool cmp(const edge a,const edge b)
int n,m;
int fa[40010];
edge edge[200010];
bool flag;
inline int find(int x)
return tmp;
}inline void merge(int x,int y)
int main()
if(!flag||n==2)
sort(edge+1,edge+1+m,cmp);
for(int i=1;i<=m;i++)
else
} return 0;
}
CODEVS 1069 關押罪犯
s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監獄,他...
wikioi 1069 關押罪犯
s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極 不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨 氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之 間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監...
Wikioi 1069 關押罪犯
題目描述 description s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極 不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨 氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之 間的積怨越多。如果兩...