題意:
給你k張圖,每個圖有點和邊。輸出每個點1 2...n的點在每張圖裡面都聯通的點的個數。
思路:
染色也行,並查集也行。在k張圖裡面給每個點染色。
比如有3個點,4張圖。染色情況如下
點1:1 1 1 1
點2:1 1 2 2
點3:1 1 2 2
將每個點的k個染色情況作為map的key,點2(1 1 2 2)=點3(1 1 2 2)說明兩個染色情況一樣。就說明兩個點在所有的圖中都是來南通的。
#include using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
const int maxn=100005;
int fa[11][maxn],a,b;
map,int> map;
vectorv[maxn];
int find(int x,int k)
void unit(int x,int y,int k)
int main()
} }for(int i=1;i<=k;i++)
} for(int i=1;i<=n;i++)
for(int i=1;i<=n;i++) printf("%d\n",map[v[i]]);
return 0;
}
小花梨判連通
美登杯 上海市高校大學生程式設計邀請賽 華東理工大學 2019年5月18日 problemc 小花梨判連通 時間限制 2000ms 空間限制 512mb description 小花梨給出n個點,讓k位同學對這n個點任意新增無向邊,構成k張圖。小花梨想知道對於每個點i,存在多少個點j 包括i本身 使...
「美登杯」 C 小花梨判連通
題意 給定n個點和基於這n個點為基的k張無向圖 輸出每個點所在的聯通塊數量 滿足所有的圖 並查集並不好操作 可以 進行dfs染色 然後把染色情況加入到color 再進行對映 顯然如果兩個點的染色情況完全一樣 那麼就在同一點 includeusing namespace std input by bx...
小花梨的陣列
probleme 小花梨的陣列 時間限制 1000ms 空間限制 512mb description 小花梨得到了乙個長度為n的陣列a,現在要對它進行三種操作 1 l r對所有的i l,r a i a i minprime a i 2 l r對所有的i l,r a i a i minprime a ...