2020暑假牛客多校第八場 I

2021-10-08 19:51:53 字數 1146 閱讀 1559

思路:並查集來入點,進乙個就有ans++,當成環時ans也++,標記,當兩個標記的並查集合並時不++,當乙個標記乙個不標記時,ans++,並且標記新的集合,當兩個都不標記的集合合併時,ans++,不標記。

**:

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace std;

typedef

long

long ll;

typedef

double db;

const

int mod=

1e9+7;

const

int maxn=

1e6;

const

double eps=

0.00000001

;int jd[maxn]

,a[maxn]

,b[maxn]

,pa[maxn]

;vector<

int>g;

intfind

(int x)

intmain()

sort

(g.begin()

,g.end()

);//雜湊化,資料過大,桶存不了。

g.erase

(unique

(g.begin()

,g.end()

),g.

end())

;//去重。

int res=0;

for(

int i=

1;i<=g.

size()

;i++

) pa[i]

=i,jd[i]=0

;for

(int i=

1;i<=n;i++

)else

} cout<<

"case #"

<<

++c<<

": "

<}}

順帶說一下k題,答案最大有1e91e51e5,ll會爆,得用in128才能過,

/(ㄒoㄒ)/~~

牛客多校 2020第八場 G Game SET

題意 輸入n種牌以及牌的屬性,任意選3張,這3張滿足4種屬性,要麼全相同,要麼全不同,是萬能牌,可以變成你想要的任意的牌,輸出3張拍的序號。題解 暴力列舉 更新一種更簡潔明瞭的 1 暴力 2 include3 include4 include5 include6 include7 include8 ...

牛客多校 2020第八場 G Game SET

題意 輸入n種牌以及牌的屬性,任意選3張,這3張滿足4種屬性,要麼全相同,要麼全不同,是萬能牌,可以變成你想要的任意的牌,輸出3張拍的序號。題解 暴力列舉 更新一種更簡潔明瞭的 1 暴力 2 include3 include4 include5 include6 include 7 include8...

牛客多校第八場

簽到題,可真短。題意 給n個數,對於每個連續子串行求區間內不同數字的個數的和。做法 一開始列舉每個區間的右端點i,判斷每個數字在區間左端點為1 i這個範圍內對右端點i的貢獻,然後累加答案,然後超時了。之後想到,每次變化範圍只會變乙個數字,只會改變乙個數字的貢獻,所以開了乙個sum記錄所有數字的貢獻就...