A. Registration
Von neuer ID
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