[PYTHON] Yukicoder-Wettbewerb 267 Eintragungsrekord

Yukicoder-Wettbewerb 267 Eintragungsrekord

Eine 1236 lange und kurze Hand

Der lange und der kurze Zeiger treffen sich 11 Mal in 12 Stunden. Natürlich wird die Anzahl der Sekunden in 12 Stunden durch 11 geteilt. Die Anzahl der Sekunden wird als Anzahl der Sekunden neben der aktuellen Zeit berechnet. Der Unterschied ist die Antwort.

from bisect import bisect_left

A, B = map(int, input().split())

x = [i * 12 * 60 * 60 // 11 for i in range(12)]
t = (A * 60 + B) % (12 * 60) * 60
print(x[bisect_left(x, t)] - t)

B 1237 EXP Multiple!

Wenn Sie es sorgfältig lesen, ist es nicht "der Rest der Division der Antwort durch 10 </ sup> 9 </ sup> + 7", sondern "der Rest der Division der Antwort durch 10 9 </ sup> + 7" oder. Dann ist es einfach zu lösen. Viele Leute haben sich aufgrund der Anzahl der Leute, die es gelöst haben, darin gefangen (lacht).

m = 1000000007


def make_factorial_table(n):
    result = [0] * (n + 1)
    result[0] = 1
    for i in range(1, n + 1):
        result[i] = result[i - 1] * i % m
    return result


N, *A = map(int, open(0).read().split())

A.sort()

if A[0] == 0:
    print(-1)
    exit()

if A[-1] >= 4:
    print(m)
    exit()

fac = make_factorial_table(3)

t = 1
for a in A:
    t *= pow(a, fac[a])
    if t > m:
        break
print(m % t)

C 1238 Auswahlklasse

Ungefähr zu der Zeit, als ich K zeichnete, dachte ich: "Oh, ich habe in der Vergangenheit ein ähnliches Problem gelöst", aber ich konnte es nicht lösen. [ABC044C --Takahashi-kun and Card](https://atcoder.jp/contests/ Es ist fast dasselbe wie abc044 / task / arc060_a) (der Unterschied zwischen dem Durchschnitt von nur X und dem Durchschnitt von X oder mehr).

Wenn a i </ sub> = A i </ sub> -K ist, ist die Frage, wie viele Möglichkeiten es gibt, insgesamt ein i </ sub> von 0 oder mehr auszuwählen. Sie können es leicht finden, indem Sie DP machen.

m = 1000000007

N, K, *A = map(int, open(0).read().split())

for i in range(N):
    A[i] -= K

dp = {}
dp[0] = 1
for a in A:
    for k in sorted(dp, reverse=True) if a >= 0 else sorted(dp):
        dp.setdefault(k + a, 0)
        dp[k + a] += dp[k]

dp[0] -= 1
print(sum(dp[k] for k in dp if k >= 0) % m)

Recommended Posts

Yukicoder-Wettbewerb 256 Eintragungsrekord
Yukicoder-Wettbewerb 267 Eintragungsrekord
Yukicoder-Wettbewerb 264 Eintragungsrekord
Yukicoder-Wettbewerb 245 Eintragungsrekord
Yukicoder-Wettbewerb 250 Eintragungsrekord
Yukicoder-Wettbewerb 262 Eintragungsrekord
Yukicoder-Wettbewerb 265 Teilnehmerrekord
Yukicoder-Wettbewerb 266 Teilnehmerrekord
Yukicoder-Wettbewerb 263 Teilnehmerrekord
Yukicoder-Wettbewerb 243 Teilnehmerrekord
Yukicoder-Wettbewerb 273 Teilnehmerrekord
Yukicoder-Wettbewerb 252 Teilnehmerrekord
Yukicoder-Wettbewerb 259 Teilnehmerrekord
Yukicoder-Wettbewerb 249 Teilnehmerrekord
Yukicoder-Wettbewerb 271 Teilnehmerrekord
Yukicoder-Wettbewerb 251 Teilnehmerrekord
Yukicoder-Wettbewerb 241 Teilnehmerrekord
Yukicoder-Wettbewerb 257 Teilnehmerrekord
Yukicoder-Wettbewerb 254 Teilnehmerrekord
Yukicoder-Wettbewerb 246 Teilnehmerrekord
Yukicoder-Wettbewerb 275 Teilnehmerrekord
Yukicoder-Wettbewerb 274 Teilnehmerrekord
Yukicoder-Wettbewerb 247 Teilnehmerrekord
Yukicoder-Wettbewerb 261 Teilnehmerrekord
Yukicoder-Wettbewerb 248 Teilnehmerrekord
Yukicoder-Wettbewerb 270 (Mathematik-Wettbewerb) Teilnahmeprotokoll
Yukicoder-Wettbewerb 272 (Weird Math Contest) Teilnahmeprotokoll
Yukicoder-Wettbewerb 259 Bewertung
Yukicoder-Wettbewerb 264 Bewertung
Yukicoder-Wettbewerb 261 Bewertung
Yukicoder-Wettbewerb 267 Bewertung
Yukicoder-Wettbewerb 266 Bewertung
Yukicoder-Wettbewerb 263 Bewertung
Yukicoder-Wettbewerb 268 Bewertung
AtCoder Beginner Contest 175 Virtueller Eintrag