baekjoon 20260111
This commit is contained in:
parent
38b311b802
commit
ca4a7fdb2c
43
code_study/Baekjoon/java/_10775.java
Normal file
43
code_study/Baekjoon/java/_10775.java
Normal file
@ -0,0 +1,43 @@
|
||||
import java.util.*;
|
||||
|
||||
public class _10775 {
|
||||
static int[] parents;
|
||||
static int ans = 0;
|
||||
|
||||
static int find(int x) {
|
||||
if(parents[x] != x) return parents[x] = find(parents[x]);
|
||||
return parents[x];
|
||||
}
|
||||
|
||||
static void union(int x, int y) {
|
||||
x = find(x);
|
||||
y = find(y);
|
||||
|
||||
if(x > y) {
|
||||
int temp = x;
|
||||
x = y;
|
||||
y = temp;
|
||||
}
|
||||
|
||||
parents[y] = x;
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int G = sc.nextInt(), P = sc.nextInt();
|
||||
parents = new int[G+1];
|
||||
for(int i=1; i<=G; i++) parents[i] = i;
|
||||
|
||||
for(int i=0; i<P; i++) {
|
||||
int gi = sc.nextInt();
|
||||
gi = find(gi);
|
||||
|
||||
if(gi == 0) break;
|
||||
|
||||
union(gi, gi-1);
|
||||
ans++;
|
||||
}
|
||||
System.out.println(ans);
|
||||
|
||||
sc.close();
|
||||
}
|
||||
}
|
||||
63
code_study/Baekjoon/java/_10830.java
Normal file
63
code_study/Baekjoon/java/_10830.java
Normal file
@ -0,0 +1,63 @@
|
||||
import java.util.*;
|
||||
|
||||
public class _10830 {
|
||||
static int MOD = 1000;
|
||||
|
||||
static void print_mat(int[][] M, int N) {
|
||||
for (int[] row : M) {
|
||||
for(int i=0; i<N; i++) System.out.printf("%d ",row[i]);
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
static int[][] mul_mat(int[][] m1, int[][] m2, int N) {
|
||||
int[][] result = new int[N][N];
|
||||
|
||||
for(int i=0; i<N; i++) {
|
||||
for(int j=0; j<N; j++) {
|
||||
for(int k=0; k<N; k++) {
|
||||
result[i][j] += m1[i][k]*m2[k][j];
|
||||
}
|
||||
result[i][j] %= MOD;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static int[][] power_mat(int[][] A, long B, int N) {
|
||||
int[][] result = new int[N][N];
|
||||
|
||||
if(B==1) {
|
||||
for(int i=0; i<N; i++) {
|
||||
for(int j=0; j<N; j++) {
|
||||
result[i][j] = A[i][j]%MOD;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int[][] temp = power_mat(A, B/2, N);
|
||||
|
||||
if(B%2 == 0) return mul_mat(temp, temp, N);
|
||||
|
||||
return mul_mat(mul_mat(temp, temp, N), A, N);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner sc = new Scanner(System.in);
|
||||
int N = sc.nextInt();
|
||||
long B = sc.nextLong();
|
||||
|
||||
int[][] A = new int[N][N];
|
||||
for(int i=0; i<N; i++) {
|
||||
for(int j=0; j<N; j++) {
|
||||
A[i][j] = sc.nextInt();
|
||||
}
|
||||
}
|
||||
sc.close();
|
||||
|
||||
int[][] result = power_mat(A, B, N);
|
||||
print_mat(result, N);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user