Atcoder ABC167 A-D en Python

A. Registration Du nouvel identifiant|S|-1Sortie Oui si les caractères sont identiques, sinon sortie Non

ABC167a.py


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

B. Easy linear programming Si $ k $ est inférieur à $ a $, choisissez des cartes $ k $ pour $ a $. Si $ k $ est inférieur à $ a + b $, la somme des cartes est $ a $. Sinon la somme des cartes est $ 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 C'était AC 5 minutes après la date limite du concours. Je suis désolé. Depuis $ N <12 $, vous pouvez rechercher tous les bits et mettre à jour le prix le plus bas qui remplit les conditions.

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):  #recherche peu complète
        if ((i >> j) & 1): 
            bag.append(l[j])  
    skill=[0]*m
    enough=[0]*m #Déterminez si chaque compétence dépasse x
    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: #Calculer le prix si toutes les compétences dépassent x
        if ans>money:
            ans=money#Mettre à jour si en dessous du prix minimum
if ans==99999999: #S'il n'y a pas de changement par rapport à la valeur initiale-Sortie 1 sinon, le prix le plus bas
    print(-1)
else:
    print(ans)

D. Teleporter Tous les télépodes vont quelque part, vous vous précipiterez donc dans la boucle avec au plus $ N $. Par exemple, $ 1 => 3 => 4 => 1 ... $ dans l'exemple 1, $ 1> = 6 => 2 => 5 => 3 => 2 ... $ dans l'exemple 2. En supposant que le nombre de téléports avant d'entrer dans la boucle est $ t1 $ et le nombre de téléports par boucle après être entré dans la boucle est $ t2 $, la position immédiatement avant la dernière téléportation est $ (k-t1) mod. Ce sera t2 $. Tout ce que vous avez à faire est de sortir la destination de cet emplacement. Il y a beaucoup de lignes et le code est sale, il peut donc y avoir une solution plus efficace.

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])

De plus, j'ai manqué de temps jusqu'à ce que D. Prochaine semaine ...

Recommended Posts

Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
AtCoder ABC177 A-D avec python
Résoudre Atcoder ABC169 A-D avec Python
Atcoder ABC166 A-E en Python
Atcoder ABC169 A-E en Python
AtCoder ABC 174 Python
AtCoder ABC 175 Python
AtCoder # 36 quotidien avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
AtCoder # 7 tous les jours avec Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 en Python
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Daily AtCoder # 20 en Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
AtCoder # 1 tous les jours avec Python
Résolvez ABC169 avec Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en Python
Daily AtCoder # 12 en Python
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
Daily AtCoder # 46 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python