Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- READ TABLE
- CTS #CTS 이관 #SAP #ABAP
- 필드카탈로그
- DP - 무한배낭(순서)
- Dictionary Search Help
- 날짜 계산 함수
- APPENDING
- DP - 무한배낭
- Union-Find
- qfieldname
- Data Browser
- NEW-PAGE PRINT ON
- APPENDING CORRESPONDING
- batch job
- BOJ_Gold
- changing value
- ZPL
- ALV Output Setting
- SM36
- using value
- SAP GUI
- SAP
- cfieldname
- DP - 유한배낭
- MONAT_F4
- ABAP
- java
- FOR ALL ENTRIES IN
- boole_d
- transporting
Archives
- Today
- Total
Jin's Library
[Gold Ⅳ] 1043 - 거짓말 본문
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ_1043 {
static int[] parent;
static int find(int x){
if(parent[x] == x) return x;
return parent[x] = find(parent[x]);
}
static void union(int a, int b){
a = find(a);
b = find(b);
if(a != b) parent[b] = a;
}
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken()); // 사람의 수
int M = Integer.parseInt(st.nextToken()); // 파티의 수
int P = 0, cnt = 0; // 진실을 아는 대표자
parent = new int[N+1];
for(int i = 1; i<=N; i++) parent[i] = i;
st = new StringTokenizer(br.readLine());
int X = Integer.parseInt(st.nextToken()); // 진실을 아는 사람의 수
if(X > 0){
P = Integer.parseInt(st.nextToken());
for(int i = 1; i < X; i++)
union(P, Integer.parseInt(st.nextToken()));
}
int[][] parties = new int[M][];
for(int i = 0; i < M; i++){
st = new StringTokenizer(br.readLine());
int Y = Integer.parseInt(st.nextToken()); // 해당 파티 참석 인원 수
parties[i] = new int[Y];
for(int j = 0; j < Y; j++)
parties[i][j] = Integer.parseInt(st.nextToken());
for(int j = 1; j < Y; j++)
union(parties[i][0], parties[i][j]);
}
if(X == 0){
System.out.println(M);
return;
}
for(int i = 0; i < M; i++){
if(find(P) != find(parties[i][0]))
cnt++;
}
System.out.println(cnt);
}
}'Algorithm - Java > BOJ - Gold' 카테고리의 다른 글
| [Gold Ⅳ] 2293 - 동전 1 (0) | 2025.10.20 |
|---|---|
| [Gold Ⅴ] 1931 - 회의실 배정 (0) | 2025.10.17 |
| [Gold Ⅱ] 10775 - 공항 (0) | 2025.10.01 |
| [Gold Ⅴ] 1717 - 집합의 표현 (0) | 2025.10.01 |
| [Gold Ⅳ] 1976 - 여행 가자 (0) | 2025.10.01 |