Nur A und B können gelöst werden. Ich habe keine andere Wahl, als das Problem auf einfache Weise zu lösen, während ich über meine Unlösbarkeit entsetzt bin. Diesmal war es eine mathematische Sitzung (?).
https://atcoder.jp/contests/abc178
A. Not
x = int(input())
if x == 0:
print(1)
else:
print(0)
Ich denke, es gibt verschiedene Möglichkeiten, es zu schreiben, aber ich habe es ehrlich mit einer if-Anweisung geschrieben.
B. Product Max
a, b, c, d = map(int, input().split())
answer = 0
if a < 0 and 0 <= b:
if c < 0 and 0 <= d:
answer = max(a * c, b * d)
elif 0 <= c and 0 <= d:
answer = b * d
elif c < 0 and d < 0:
answer = a * c
elif 0 <= a and 0 <= b:
if c < 0 and 0 <= d:
answer = b * d
elif 0 <= c and 0 <= d:
answer = b * d
elif c < 0 and d < 0:
answer = a * d
elif a < 0 and b < 0:
if c < 0 and 0 <= d:
answer = a * c
elif 0 <= c and 0 <= d:
answer = b * c
elif c < 0 and d < 0:
answer = a * c
print(answer)
Während ich die if-Anweisung schrieb, dachte ich "Ich kann es mit max ...", aber ich schrieb alle Fälle, ohne umzukehren. Auch wenn Sie es nicht so teilen, können Sie es wie unten gezeigt mit max lösen.
a, b, c, d = map(int, input().split())
answer = max(a*c, a*d, b*c, b*d)
print(answer)
C. Ubiquity
MOD = 10**9 + 7
N = int(input())
#Mindestens 0 ist enthalten
in0 = 10**N - 9**N
#Mindestens 0 ist enthalten
in9 = 10**N - 9**Nu
#Geben Sie 0 oder 9 ein
0and9 = 10**N - 8**N
answer = in0 + in9 - 0and9
print(answer%MOD)
Ich hatte eine Antwort auf meinen Hals, aber aus irgendeinem Grund konnte ich keine Antwort finden. Da es nicht normal gezählt werden kann, wird es durch Subtrahieren vom Ganzen berechnet. Das Bild unten.
D. Redistribution
MOD = 10**9 + 7
S = int(input())
dp = [0] * (S+1)
dp[0] = 1
for i in range(1, S+1):
for j in range(0, (i-3)+1):
dp[i] += dp[j]
dp[i] %= MOD
print(dp[S])
Snukes Antwort So wie es ist.
dp
Ich weiß nur was ich wusste.
Wenn Sie sich die Erklärung ansehen, können Sie sehen, dass es "sicher" ist, aber wenn Sie tatsächlich aufgefordert werden, sie innerhalb des Zeitlimits zu lösen, können Sie "DP" nicht lösen.
Nicht genug Training ...
E. Dist Max
N = int(input())
a, b = [], []
for i in range(N):
x, y = map(int, input().split())
a.append(x+y)
b.append(x-y)
a.sort()
b.sort()
answer = max(a[-1] - a[0], b[-1] - b[0])
print(answer)
Dies ist auch Snukes Antwort.
Ich habe gelernt, wie man die Formel von max.
Recommended Posts