優化AC 建立聯絡

2022-05-03 16:48:08 字數 1268 閱讀 1014

建立聯絡

【試題描述】

新學期開始了,不料同學們在假期集體更換了**,所以同學們只能重新建立聯絡。

班內一共有n位同學,他們一共建立了m次聯絡,老師想知道在同學們每次建立完乙個聯絡後,一共有多少對同學可以互相聯絡。

【輸入要求】

第一行有兩個數n和m,表示有n位同學和m次操作。

以後m行,每行兩個數a和b,分別表示a號同學與b號同學之間建立了聯絡。

【輸出要求】

輸出共有m行,每行乙個整數,表示第m次操作後共有多少對同學可以互相聯絡。

【輸入例項】

5 6

1 22 3

4 51 3

2 44 5

【輸出例項】

134

41010

【其他說明】

1<=n,m<=100000 

【試題分析】

為啥叫所謂的「優化ac」呢?很簡單,因為只有按照優化的方法寫**才能ac,否則結果錯誤,並查集「敵人」那道題就是要這樣的方法解決,但是不優化之前就是時間超限。維護每個並查集的大小。我們具體來看看**。

【**】

#includeusing namespace std;

long long x,y,f[100001],n,m,size[100001],ans;

int find(int x)

void merge(int v,int u)

//合併並查集之後並查集的大小要隨之增加

return ;

}inline long long read()

inline void write(long long x)

if(x<0)putchar('-'),x=-x;

int len=0,buf[15];while(x)buf[len++]=x%10,x/=10;

for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return;

}int main()

//需合併兩個並查集,為以後查詢做準備

write(ans);

printf("\n");//不要忘了write中沒有回車!!

}}

AC自動機 建立nlogn個AC自動機

string set queries 題意 給你3種操作,1 加入乙個串到集合中。2 刪除集合中的某乙個串 3 查詢集合中的字串在給定的字串種出現幾次。同乙個串可重複 解法 建立多個ac自動機,用二進位制分組來處理。加入給你21個串 分為 16 4 1,再新增乙個串的時候,即21 1,22 16 4...

CloudCC CRM 建立智慧型客戶聯絡中心

作為客戶關係管理的主要載體之一,基於cti computer telephony integration 技術的現代呼叫中心 call center 在20世紀90年代引入中國。在其後十年左右的時間裡,呼叫中心迅速經歷了概念期和匯入期,很快就進入了高速推廣期,並以超乎尋常地速度得到普及和應用。作為企...

聯絡人去重的寫法優化

最近測試反應了乙個問題,就是載入聯絡人的速度過慢。汗 這個不能叫演算法,應該叫寫法。簡單的迴圈遍歷.private void removeduplicatesamcontacts arraylistcontact list for samcontact c removelist 時間提高了5000 ...