1 - 야구 시즌
식은(부등식으로) 간단하게 나오는데, 이거를 다시 B에 관한 식으로 바꿀 생각은 못했고 그냥 이분탐색 돌렸다.
아침에 일어나서 명일방주하느라 뇌 과부하돼서 문제 이해하는데 20분은 걸린듯
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
29
30
|
import sys
input = sys.stdin.readline
t = int(input())
while t:
t -= 1
n,m,k,d = map(int, input().split())
lo = 1
hi = d
ans = -1
now = 0
mid = lo+hi >> 1
mc = (m*(m-1))//2
nc = (n*(n-1))//2
while lo < hi:
mid = (lo + hi)//2
x1 = mid * k * mc * n
x2 = nc * m * mid * m
now = x1 + x2
if now < d:
ans = now
lo = mid + 1
elif now == d:
ans = now
break
else:
hi = mid
print(ans)
|
cs |
2 - 초직사각형
a, b, c, d에서 증가되는 비율? 이라고 하는게 맞는지는 모르겠지만, 1에 1을 더하는 것과 10에 2를 더하는 것 중에서는 당연히 1에 1을 더하는게 이득이라는 것을 보고, 그냥 하드코딩했다 ㅋㅋ
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
ar = list(map(int, input().split()))
a = [[],[],[],[]]
ans = []
for i in range(n):
x, z = map(str, input().split())
if x=="A": a[0].append(int(z))
if x=="B": a[1].append(int(z))
if x=="C": a[2].append(int(z))
if x=="D": a[3].append(int(z))
for i in range(4):
if len(a[i])==0: continue
a[i].sort()
a[i].reverse()
i1=0;i2=0;i3=0;i4=0
for _ in range(k):
x = []
if i1<len(a[0]):
x.append(a[0][i1]/ar[0])
if i2<len(a[1]):
x.append(a[1][i2]/ar[1])
if i3<len(a[2]):
x.append(a[2][i3]/ar[2])
if i4<len(a[3]):
x.append(a[3][i4]/ar[3])
if i1<len(a[0]) and max(x) == a[0][i1]/ar[0]:
ar[0]+=a[0][i1]
ans.append(["A", a[0][i1]])
i1 += 1
elif i2<len(a[1]) and max(x) == a[1][i2]/ar[1]:
ar[1]+=a[1][i2]
ans.append(["B", a[1][i2]])
i2 += 1
elif i3<len(a[2]) and max(x) == a[2][i3]/ar[2]:
ar[2]+=a[2][i3]
ans.append(["C", a[2][i3]])
i3 += 1
else:
ar[3]+=a[3][i4]
ans.append(["D", a[3][i4]])
i4 += 1
for i in ans:
print(*i)
|
cs |
3 - 공통 부분 수열 확장
이건 못풀었다
설명을 어떻게 해야되지..
\(W_{i}\) 사이사이에 남는? 문자열 배열을 X, Y 각각에 대해 구한다.
그리고 각 X, Y에 대해서 찾은 \(2 ( |W| + 1 )\) 개 의 배열을 정렬하고, 이걸 투포인터로 쭉 돌리면 된다.
시작점을 끝점으로 잡고 총 두번 돌리면 된다. 오른쪽 끝에서 돌릴 생각을 못해서 틀림
후기
왜 350점 받고 일반고 은상인지는 모르겠지만, 정말 아쉬웠고, 알고리즘을 늦게 접한게 아쉽기만 하다.. 작년 8월이 아니라 재작년 8월에 시작했다면 더 좋았을텐데
'대회' 카테고리의 다른 글
2022 청정수컵 새내기 Round 간단한 풀이 + 후기 (2) | 2022.05.15 |
---|---|
nypc 2021 한줄평 (0) | 2021.08.30 |
2021 NYPC 예선 후기 (0) | 2021.08.27 |
2021 KOI 2차대회 후기 (0) | 2021.07.27 |
2021 정올 가채점? (0) | 2021.05.17 |