๋ฌธ์
4195๋ฒ: ์น๊ตฌ ๋คํธ์ํฌ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ์น๊ตฌ ๊ด๊ณ์ ์ F๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ๊ฐ์ 100,000์ ๋์ง ์๋๋ค. ๋ค์ F๊ฐ์ ์ค์๋ ์น๊ตฌ ๊ด๊ณ๊ฐ ์๊ธด ์์๋๋ก ์ฃผ์ด์ง
www.acmicpc.net
์ฝ๋
#include <iostream>
#include <unordered_map>
using namespace std;
int N;
unordered_map<string, string> parent;
unordered_map<string, int> connect_cnt;
string find_parent(string x){
if(x == parent[x]) return x;
else return parent[x] = find_parent(parent[x]);
}
void union_parent(string a, string b){
a = find_parent(a);
b = find_parent(b);
if(a > b){
parent[a] = b;
connect_cnt[b] += connect_cnt[a];
connect_cnt[a] = 0;
}
else{
parent[b] = a;
connect_cnt[a] += connect_cnt[b];
connect_cnt[b] = 0;
}
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int T; cin>>T;
while(T--){
cin>>N;
for(int i=0; i<N; i++){
string a, b; cin>>a>>b;
if(connect_cnt[a] == 0 && parent.find(a) == parent.end()){
connect_cnt[a] = 1;
parent[a] = a;
}
if(connect_cnt[b] == 0 && parent.find(b) == parent.end()){
connect_cnt[b] = 1;
parent[b] = b;
}
if(find_parent(a) != find_parent(b)) union_parent(a, b);
cout<<connect_cnt[(find_parent(a))]<<'\n';
}
parent.clear();
connect_cnt.clear();
}
}
ํ์ด
[๋ฐฑ์ค,c++] 18116๋ฒ - ๋ก๋ด ์กฐ๋ฆฝ
๋ฌธ์ 18116๋ฒ: ๋ก๋ด ์กฐ๋ฆฝ ์ฑ๊ท๋ ๋ก๋ด์ ์กฐ๋ฆฝํด์ผ ํ๋ค. ์์ ์์๋ ์ฌ๋ฌ ๋ก๋ด์ ๋ถํ๋ค์ด ์์ฌ ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ค ๋ถํ์ด ์ด๋ ๋ก๋ด์ ๋ถํ์ธ์ง ํ์๊ฐ ๋์ด์์ง ์๋ค. ํธ์ฌ๋ ์ ์๊ณผ๋ผ์ ๋ ๋ถ
dkswnkk.tistory.com
์ ๋ฌธ์ ๋ ๋์ผํ๋ฐ ํด์ฌ๋ฅผ ์จ์ผ ํ๋ค๋ ์ ์์ ํฐ์ด๊ฐ 2 ์ฐจ์ด ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ์ค ํฌ๊ฒ ๋ค๋ฅผ ๊ฑด ์๋๋ฐ ๋ง์ ๋๋ค.
์ด๋ค ๋ ธ๋๊ฐ ๋ช ๊ฐ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋์ง ์ฐพ๋ ๋ฌธ์ ์ธ ์ ๋์จ ํ์ธ๋ ๋ฌธ์ ์ ๋๋ค.
์์ ๋ ธ๋๊ฐ ๋ช ๊ฐ์ธ์ง๋ฅผ ๊ธฐ๋กํ๋ ๋ฐฐ์ด์ ์์ฑํด๋๊ณ ์ ๋์จ ํ์ธ๋๋ฅผ ํตํด์ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ํฉ์น ๋, ํด๋น ์์ ๋ ธ๋์ ๊ฐ์๋ฅผ ๊ฐฑ์ ํ๋ ์์ด๋์ด๋ก ํด๊ฒฐํ์ต๋๋ค. ํด๋น ์์ ๋ ธ๋์ ๊ฐ์๊ฐ ๊ณง ์ด ๋ฌธ์ ์์ ์๊ตฌํ๋ ์น๊ตฌ ๋คํธ์ํฌ์ ์ธ์ ์๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 2533๋ฒ - ์ฌํ๋ง ์๋น์ค(SNS) (0) | 2022.09.04 |
---|---|
[๋ฐฑ์ค,c++] 15681๋ฒ - ํธ๋ฆฌ์ ์ฟผ๋ฆฌ (0) | 2022.09.04 |
[๋ฐฑ์ค,c++] 10775๋ฒ - ๊ณตํญ (0) | 2022.09.02 |
[๋ฐฑ์ค,c++] 18116๋ฒ - ๋ก๋ด ์กฐ๋ฆฝ (0) | 2022.09.02 |
[๋ฐฑ์ค,c++] 17144๋ฒ - ๋ฏธ์ธ๋จผ์ง ์๋ ! (0) | 2022.09.02 |
[๋ฐฑ์ค,c++] 1761๋ฒ - ์ ์ ๋ค์ ๊ฑฐ๋ฆฌ (0) | 2022.09.01 |
๋๊ธ