小 X 的液體混合

2021-10-24 21:05:13 字數 1067 閱讀 4625

example

mixture.in

3 21 2

2 3mixture.out

4scoring

• 對於 30% 的資料,n ≤ 10。

• 對於 100% 的資料,1 ≤ n ≤ 1000,a = b,同種反應不會出現多次。

輸入的一張圖可能有多個不同的連通塊,而每個不同的連通塊之間互不影響,且每個

不同連通塊中加入的第一種液體一定不會使危險係數乘 2,只有加入的第2個至那個連

通塊的節點個數才會使危險係數乘 2,則最後的答案是

這題可用並查集來找出有多少個不同的連通塊個數

**:

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

const

int n=

1e6+

100;

int n,m,u,v,ans,num,a[n]

,fa[n]

,d[n]=;

int find (

int x)

void unionn (

int u,

int v)

int cf (

)int main (

)for

(int i=

1;i<=n;i++)if

(fa[i]

==i) ans++

;//找有多少個連通塊

ans=n-ans;

for(

int i=

1;i<=ans;i++

) cf ();

//高精乘

for(

int i=d[0]

;i>=

1;i--

) printf (

"%d"

,d[i]);

return0;

}

題解 小X的液體混合

雖然小x不喜歡化學原理,但他特別喜歡把一大堆液體倒在一起。現在小x有n種液體,其中m對會發生反應。現在他想把這n種液體按某種順序倒入乙個容器內,讓他獲得最刺激的體驗,也就是使危險係數盡量大。我們可以這樣計算危險係數,一開始容器內沒有任何液體,危險係數為1。每次液體倒入容器時,若容器內已有一種或多種液...

小X的液體混合 並查集 高精乘

我們可以發現,乙個連通圖中只有第乙個放進去的是無法產生貢獻的,而其他都是可以把危險係數乘2 22的。所以我們就只要判斷有多少個連通圖,這也就說明,有x xx個點是不能產生貢獻。那麼剩餘的n x n xn x連通圖個數的點都是可以讓答案乘2 22的。那麼就用並查集判斷連通圖個數,然後再高精乘即可。in...

小X的質數

題目描述 在小x的認知裡,質數是除了本身和1以外,沒有其他因數的數。但由於小x對質數的熱愛超乎尋常,所以小x同樣喜歡那些雖然不是質數,但卻是由兩個質數相乘得來的數。於是,我們定義乙個數小x喜歡的數,當且僅其是乙個質數或是兩個質數的乘積。輸入 第一行輸入個正整數q,表示詢問的組數。接下來q行,包含兩個...