baekjoon 20260226
This commit is contained in:
parent
bff62aa11b
commit
cd2cda0f72
59
code_study/Baekjoon/java/_1005_1.java
Normal file
59
code_study/Baekjoon/java/_1005_1.java
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class _1005_1 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
int T = sc.nextInt();
|
||||||
|
int[] ans = new int[T];
|
||||||
|
|
||||||
|
for(int t=0; t<T; t++) {
|
||||||
|
int N = sc.nextInt(), K = sc.nextInt();
|
||||||
|
|
||||||
|
int[] build_time = new int[N+1];
|
||||||
|
for(int i=1; i<=N; i++) build_time[i] = sc.nextInt();
|
||||||
|
|
||||||
|
int[] indegree = new int[N+1];
|
||||||
|
int[][] graph = new int[N+1][N+1];
|
||||||
|
|
||||||
|
for(int i=0; i<K; i++) {
|
||||||
|
int X = sc.nextInt(), Y = sc.nextInt();
|
||||||
|
indegree[Y]++;
|
||||||
|
graph[X][++graph[X][0]] = Y;
|
||||||
|
}
|
||||||
|
|
||||||
|
int W = sc.nextInt();
|
||||||
|
int[] complete_time = new int[N+1];
|
||||||
|
int[] qu = new int[N];
|
||||||
|
int front = 0, rear = 0;
|
||||||
|
for(int i=1; i<=N; i++) {
|
||||||
|
if(indegree[i] == 0) {
|
||||||
|
qu[rear++] = i;
|
||||||
|
complete_time[i] = build_time[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while(front <= rear) {
|
||||||
|
int now = qu[front++];
|
||||||
|
if(now == W) break;
|
||||||
|
|
||||||
|
for(int i=1; i<=graph[now][0]; i++) {
|
||||||
|
int next = graph[now][i];
|
||||||
|
indegree[next]--;
|
||||||
|
complete_time[next] = Math.max(complete_time[now] + build_time[next], complete_time[next]);
|
||||||
|
|
||||||
|
if(indegree[next] == 0) {
|
||||||
|
qu[rear++] = next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ans[t] = complete_time[W];
|
||||||
|
}
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
|
||||||
|
for (int n : ans) {
|
||||||
|
System.out.println(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
55
code_study/Baekjoon/java/_1005_2.java
Normal file
55
code_study/Baekjoon/java/_1005_2.java
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class _1005_2 {
|
||||||
|
static int N, K, W;
|
||||||
|
static int[] build_time, complete_time;
|
||||||
|
static int[][] prev_build;
|
||||||
|
|
||||||
|
static int build(int n) {
|
||||||
|
if(complete_time[n] == -1) {
|
||||||
|
int total_time = 0;
|
||||||
|
for(int i=1; i<=prev_build[n][0]; i++) {
|
||||||
|
int prev = prev_build[n][i];
|
||||||
|
total_time = Math.max(total_time, build(prev));
|
||||||
|
}
|
||||||
|
complete_time[n] = total_time + build_time[n];
|
||||||
|
}
|
||||||
|
|
||||||
|
return complete_time[n];
|
||||||
|
}
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
int T = sc.nextInt();
|
||||||
|
int[] ans = new int[T];
|
||||||
|
|
||||||
|
for(int t=0; t<T; t++) {
|
||||||
|
N = sc.nextInt();
|
||||||
|
K = sc.nextInt();
|
||||||
|
|
||||||
|
build_time = new int[N+1];
|
||||||
|
for(int i=1; i<=N; i++) {
|
||||||
|
build_time[i] = sc.nextInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
prev_build = new int[N+1][N+1];
|
||||||
|
|
||||||
|
for(int i=0; i<K; i++) {
|
||||||
|
int X = sc.nextInt(), Y = sc.nextInt();
|
||||||
|
prev_build[Y][++prev_build[Y][0]] = X;
|
||||||
|
}
|
||||||
|
|
||||||
|
complete_time = new int[N+1];
|
||||||
|
for(int i=1; i<=N; i++) complete_time[i] = -1;
|
||||||
|
|
||||||
|
W = sc.nextInt();
|
||||||
|
|
||||||
|
ans[t] = build(W);
|
||||||
|
}
|
||||||
|
|
||||||
|
sc.close();
|
||||||
|
|
||||||
|
for (int n : ans) {
|
||||||
|
System.out.println(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
24
code_study/Baekjoon/swift/3460.swift
Normal file
24
code_study/Baekjoon/swift/3460.swift
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
func slv() {
|
||||||
|
guard let T = Int(readLine() ?? "") else { return }
|
||||||
|
|
||||||
|
for _ in 0..<T {
|
||||||
|
guard let N = Int(readLine() ?? "") else { return }
|
||||||
|
|
||||||
|
var n = N
|
||||||
|
var m = 0
|
||||||
|
var ans: [String] = []
|
||||||
|
|
||||||
|
while n != 0 {
|
||||||
|
if n % 2 == 1 {
|
||||||
|
ans.append(String(m))
|
||||||
|
}
|
||||||
|
|
||||||
|
m += 1
|
||||||
|
n /= 2
|
||||||
|
}
|
||||||
|
|
||||||
|
print(ans.joined(separator: " "))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
slv()
|
||||||
Loading…
x
Reference in New Issue
Block a user