Atcoder ABC167 A-D in Python

A. Registration Von neuer ID|S|-1Ausgabe Ja, wenn die Zeichen identisch sind, andernfalls Ausgabe Nein

ABC167a.py


a=input()
b=input()
s=len(a)
if b[:s]!=a:
    print("No")
else:
    print("Yes")

B. Easy linear programming Wenn $ k $ kleiner als $ a $ ist, wählen Sie $ k $ Karten für $ a $. Wenn $ k $ kleiner als $ a + b $ ist, beträgt die Summe der Karten $ a $. Andernfalls beträgt die Summe der Karten $ a- (k- (a + b))) $

ABC167b.py


a,b,c,k=map(int,input().split())

if k<=a:
    print(k)
elif k<=a+b:
    print(a)
else:
    print(a-(k-(a+b)))

C. Skill up Es war AC 5 Minuten nach dem Einsendeschluss des Wettbewerbs. Es tut mir Leid. Da $ N <12 $ ist, können Sie alle Bits durchsuchen und den niedrigsten Preis aktualisieren, der die Bedingungen erfüllt.

ABC167c.py


n,m,x=map(int,input().split())
l=[]

for i in range(n):
    a=list(map(int,input().split()))
    l.append(a)
ans=99999999
for i in range(2 ** n):
    bag = []
    for j in range(n):  #Bit vollständige Suche
        if ((i >> j) & 1): 
            bag.append(l[j])  
    skill=[0]*m
    enough=[0]*m #Bestimmen Sie, ob jede Fertigkeit x überschreitet
    money=0
    for sub in bag:
        money+=sub[0]
        for kk in range(1,m+1):
            skill[kk-1]+=sub[kk]
            if skill[kk-1]>=x:
                enough[kk-1]+=1
    if 0 not in enough: #Berechnen Sie den Preis, wenn alle Fähigkeiten x überschreiten
        if ans>money:
            ans=money#Update wenn unter dem Mindestpreis
if ans==99999999: #Wenn sich der Anfangswert nicht ändert-Ausgabe 1 sonst der niedrigste Preis
    print(-1)
else:
    print(ans)

D. Teleporter Alle Telepoden gehen irgendwohin, so dass Sie innerhalb von höchstens $ N $ in die Schleife eilen. Zum Beispiel $ 1 => 3 => 4 => 1 ... $ in Beispiel 1, $ 1> = 6 => 2 => 5 => 3 => 2 ... $ in Beispiel 2. Unter der Annahme, dass die Anzahl der Teleports vor dem Betreten der Schleife $ t1 $ und die Anzahl der Teleports pro Schleife nach dem Betreten der Schleife $ t2 $ beträgt, beträgt die Position unmittelbar vor dem letzten Teleport $ (k-t1) mod. Es wird t2 $ sein. Sie müssen lediglich das Ziel dieses Standorts ausgeben. Es gibt viele Zeilen und der Code ist schmutzig, daher gibt es möglicherweise eine effizientere Lösung.

ABC167d.py


n,k=map(int,input().split())

a=list(map(int,input().split()))

l=[1]
di={}
di[1]=1

for i in a:
    b=a[l[-1]-1]
    if b in di:
        x=b
        break
    l.append(b)
    di[b]=1
t1=0
for j in l:
    if j==x:
        break
    else:
        t1+=1

t2=len(l)-t1
if k<=t1:
    print(l[k])

else:
    aa=(k-t1)%t2
    print(l[t1+aa])

Außerdem hatte ich keine Zeit mehr bis D. Nächste Woche ...

Recommended Posts

Atcoder ABC167 A-D in Python
Atcoder ABC165 A-D in Python
AtCoder ABC177 A-D mit Python
Löse den Atcoder ABC169 A-D mit Python
Atcoder ABC166 A-E in Python
Atcoder ABC169 A-E in Python
AtCoder ABC 174 Python
AtCoder ABC 175 Python
Täglicher AtCoder # 36 mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Täglicher AtCoder # 53 in Python
Täglicher AtCoder # 7 in Python
AtCoder # 24 jeden Tag mit Python
Täglicher AtCoder # 37 in Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 42 in Python
Täglicher AtCoder # 21 mit Python
Täglicher AtCoder # 17 mit Python
Täglicher AtCoder # 38 in Python
Täglicher AtCoder # 54 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 15 in Python
Täglicher AtCoder # 13 in Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 40 mit Python
Täglicher AtCoder # 10 mit Python
AtCoder # 5 jeden Tag mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 39 in Python
Täglicher AtCoder # 20 in Python
Täglicher AtCoder # 19 in Python
Täglicher AtCoder # 52 in Python
Täglicher AtCoder # 3 in Python
Täglicher AtCoder # 14 mit Python
Täglicher AtCoder # 50 mit Python
Täglicher AtCoder # 26 mit Python
Täglicher AtCoder # 4 mit Python
Täglicher AtCoder # 43 in Python
Täglicher AtCoder # 29 in Python
Jeden Tag mit Python AtCoder # 22
Täglicher AtCoder # 49 in Python
Täglicher AtCoder # 27 in Python
AtCoder # 1 jeden Tag mit Python
Löse ABC169 mit Python
Täglicher AtCoder # 25 mit Python
Täglicher AtCoder # 16 in Python
Täglicher AtCoder # 12 in Python
Täglicher AtCoder # 48 in Python
Täglicher AtCoder # 23 in Python
Täglicher AtCoder # 34 in Python
Täglicher AtCoder # 51 mit Python
Täglicher AtCoder # 31 in Python
Jeden Tag mit Python AtCoder # 46
Täglicher AtCoder # 35 mit Python
AtCoder # 9 jeden Tag mit Python
Täglicher AtCoder # 44 mit Python