baekjoon 20260320
This commit is contained in:
parent
531652b9d4
commit
96c620e88e
@ -2,28 +2,31 @@ import sys
|
|||||||
sys.setrecursionlimit(10**6)
|
sys.setrecursionlimit(10**6)
|
||||||
input = sys.stdin.readline
|
input = sys.stdin.readline
|
||||||
|
|
||||||
|
ans = []
|
||||||
|
|
||||||
for _ in range(int(input())) :
|
for _ in range(int(input())) :
|
||||||
N, K = map(int, input().split())
|
N, K = map(int, input().split())
|
||||||
|
bt = [0] + list(map(int, input().split()))
|
||||||
|
|
||||||
build_time = [0] + list(map(int, input().split()))
|
prev_build = [[] for _ in range(N+1)]
|
||||||
|
|
||||||
build_info = [[] for _ in range(N+1)]
|
|
||||||
for _ in range(K) :
|
for _ in range(K) :
|
||||||
x, y = map(int, input().split())
|
x, y = map(int, input().split())
|
||||||
build_info[y].append(x)
|
prev_build[y].append(x)
|
||||||
|
|
||||||
W = int(input())
|
W = int(input())
|
||||||
|
|
||||||
dp = [-1]*(N+1)
|
dp = [-1]*(N+1)
|
||||||
|
|
||||||
def solve(target) :
|
def build(n) :
|
||||||
if dp[target] == -1 :
|
if dp[n] == -1 :
|
||||||
max_build_time = 0
|
prev_time = 0
|
||||||
for prev in build_info[target] :
|
|
||||||
max_build_time = max(max_build_time, solve(prev))
|
|
||||||
|
|
||||||
dp[target] = max_build_time + build_time[target]
|
for prev in prev_build[n] :
|
||||||
|
prev_time = max(prev_time, build(prev))
|
||||||
|
|
||||||
return dp[target]
|
dp[n] = prev_time + bt[n]
|
||||||
|
|
||||||
print(solve(W))
|
return dp[n]
|
||||||
|
|
||||||
|
ans.append(build(W))
|
||||||
|
|
||||||
|
print("\n".join(map(str, ans)))
|
||||||
@ -2,43 +2,45 @@ from collections import deque
|
|||||||
import sys
|
import sys
|
||||||
input = sys.stdin.readline
|
input = sys.stdin.readline
|
||||||
|
|
||||||
ans = []
|
def solve() :
|
||||||
T = int(input())
|
|
||||||
|
|
||||||
for _ in range(T) :
|
|
||||||
N, K = map(int, input().split())
|
N, K = map(int, input().split())
|
||||||
|
|
||||||
build_info = [[] for _ in range(N+1)]
|
|
||||||
dp = [-1]*(N+1)
|
|
||||||
build_time = [0] + list(map(int, input().split()))
|
build_time = [0] + list(map(int, input().split()))
|
||||||
|
|
||||||
|
graph = [[] for _ in range(N+1)]
|
||||||
indegree = [0]*(N+1)
|
indegree = [0]*(N+1)
|
||||||
|
|
||||||
for _ in range(K) :
|
for _ in range(K) :
|
||||||
u, v = map(int, input().split())
|
x, y = map(int, input().split())
|
||||||
build_info[u].append(v)
|
graph[x].append(y)
|
||||||
indegree[v] += 1
|
indegree[y] += 1
|
||||||
|
|
||||||
W = int(input())
|
|
||||||
|
|
||||||
qu = deque()
|
qu = deque()
|
||||||
|
dp = [0]*(N+1)
|
||||||
|
|
||||||
for i in range(1, N+1) :
|
for i in range(1, N+1) :
|
||||||
if indegree[i] == 0 :
|
if indegree[i] == 0 :
|
||||||
qu.append(i)
|
qu.append(i)
|
||||||
dp[i] = build_time[i]
|
dp[i] = build_time[i]
|
||||||
|
|
||||||
|
W = int(input())
|
||||||
|
|
||||||
while qu :
|
while qu :
|
||||||
now = qu.popleft()
|
now = qu.popleft()
|
||||||
|
|
||||||
if now == W :
|
if now == W :
|
||||||
break
|
break
|
||||||
|
|
||||||
for next in build_info[now] :
|
for nxt in graph[now] :
|
||||||
dp[next] = max(dp[next], dp[now] + build_time[next])
|
dp[nxt] = max(dp[nxt], dp[now] + build_time[nxt])
|
||||||
|
|
||||||
indegree[next] -= 1
|
indegree[nxt] -= 1
|
||||||
if indegree[next] == 0 :
|
if indegree[nxt] == 0 :
|
||||||
qu.append(next)
|
qu.append(nxt)
|
||||||
|
|
||||||
ans.append(str(dp[W]))
|
return dp[W]
|
||||||
|
|
||||||
print('\n'.join(ans))
|
ans = []
|
||||||
|
|
||||||
|
for _ in range(int(input())) :
|
||||||
|
ans.append(solve())
|
||||||
|
|
||||||
|
print("\n".join(map(str, ans)))
|
||||||
1
code_study/Baekjoon/python/2902.py
Normal file
1
code_study/Baekjoon/python/2902.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
print("".join(s[0] for s in input().split("-")))
|
||||||
Loading…
x
Reference in New Issue
Block a user