建立聯絡
【試題描述】
新學期開始了,不料同學們在假期集體更換了**,所以同學們只能重新建立聯絡。
班內一共有n位同學,他們一共建立了m次聯絡,老師想知道在同學們每次建立完乙個聯絡後,一共有多少對同學可以互相聯絡。
【輸入要求】
第一行有兩個數n和m,表示有n位同學和m次操作。
以後m行,每行兩個數a和b,分別表示a號同學與b號同學之間建立了聯絡。
【輸出要求】
輸出共有m行,每行乙個整數,表示第m次操作後共有多少對同學可以互相聯絡。
【輸入例項】
5 61 22 3
4 51 3
2 44 5
【輸出例項】
13441010
【其他說明】
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 ...