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行,包含兩個...