AtCoder 캐디 프로그래밍 대회 2021 ABC 193 개인 노트
15391 단어 Python시합 프로그램 설계AtCodertech
감상
abd3 완료
c 종료 27초 후ac
비애
생각보다 그렇게 춥지는 않았어요.
A - Discount
A, B = map(int, input().split())
print(100 - A / B * 100)
B - Play Snuke
(0.5분마다 재고 감소 1) = (1분마다 재고 감소 1)
이렇게 생각하면 편해요.
N = int(input())
INF = 10 ** 18
ans = INF
for _ in range(N):
a, p, x = map(int, input().split())
x -= a
if x >= 1:
ans = min(ans, p)
if ans == INF:
print(-1)
else:
print(ans)
C - Unexpressed
중복수 a^b를 몰랐어요.
a,b는 2\leqa\leqlceil\sqrt{N}\rceil 범위 내에서 모두 검색하면 k
b는 a=2에서도 2^{34}\geq10^{10}이 되므로 O(\sqrt{N})
따라서\bf2^6=8^2=64의 경우 계수를 중복하지 않기 위해서는\bfa^b의 계산 결과를 미리 기록해야 한다
N = int(input())
ans = N
seen = set()
for i in range(2, int(N ** 0.5) + 1):
for j in range(2, N):
cal = i ** j
if cal > N:
break
if cal in seen:
continue
seen.add(cal)
ans -= 1
print(ans)
D - Poker
다음 두 가지 이유에 따라 뒷면 카드의 조합으로 전체 탐색을 하는 것이 좋다
고교와 청목의 득점은 O(10)로 계산할 수 있다
따라서 전체적인 계산량은 O(10^3) 정도일 수 있다
(다카하시 군이 이긴 경우)/(모든 경우)
각 조합은 다음과 같이 처리한다.
from collections import Counter
K = int(input())
S = Counter(input())
T = Counter(input())
win = 0
denominator = 0
for i in range(1, 10):
i = str(i)
for j in range(1, 10):
j = str(j)
# カードの枚数がK以下かを確認
cnt = Counter()
if i == j:
cnt[i] += S[i] + T[i] + 2
else:
cnt[i] += S[i] + T[i] + 1
cnt[j] += S[j] + T[j] + 1
if any(x > K for x in cnt.values()):
continue
# 場合の数を計算
if i == j:
res = (K - (S[i] + T[i]))
num_of_cases = res * (res - 1)
else:
num_of_cases = (K - (S[i] + T[i])) * (K - (S[j] + T[j]))
denominator += num_of_cases
# 高橋君の得点を計算
lst_t = Counter(S)
lst_t[i] += 1
takahashi = sum(n * 10 ** lst_t[str(n)] for n in range(1, 10))
# 青木君の得点を計算
lst_a = Counter(T)
lst_a[j] += 1
aoki = sum(m * 10 ** lst_a[str(m)] for m in range(1, 10))
if takahashi > aoki:
win += num_of_cases
print(win / denominator)
Reference
이 문제에 관하여(AtCoder 캐디 프로그래밍 대회 2021 ABC 193 개인 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/m193h/articles/20210227sat225510m193habc193텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)