[PYTHON] AtCoder Beginner Contest 167 Memorandum

zunaechst

Diejenigen, die gekommen sind, um auf diesen Artikel zu verweisen. Es tut uns leid. A, B, C, D verstanden A - Registration

s==t[0:-1]#(ich meine[:-1]Aber ich fühle mich gut...)

B - Easy Linear Programming Wenn Sie die Nummer in der richtigen Reihenfolge ziehen, ist dies in Ordnung Schmutziger Quellcode.

def j():
    a,b,c,k=map(int,input().split())
    o=0
    x=k
    if a!=0:
        o+=a
        k-=a
        if k==0:
            return a
        elif k<0:
            return x
    if b!=0:
        k-=b
        if k<=0:
            return a
    if c!=0:
        k-=c
        o-=c
        if k==0:
            return o
        elif k<0:
            return o-k
print(j())

C - Skill Up Ich habe es übersprungen. Überhaupt nicht gut zu suchen. Bis zum nächsten Mal lernen.

Nachtrag Es scheint, dass dies durch Bitsuche erfolgen kann. Also lernen habe ich es versucht. Infolgedessen war es ein One-Shot-Clear. Die Bit-Suchmethode erwies sich als praktisch.

n,m,x=map(int,input().split())
item=[list(map(int,input().split()))for i in range(n)]#Gold, Algorithmus Up Nummer
bag=[]#So kaufen Sie ein Buch, das die Bedingungen erfüllt
for i in range(2**n):#Untersuche alle
    temp=[]#Bücher zu kaufen
    job=[0]*m#Verständnis
    for s in range(n):#Untersuche alle Ziffern
        if (i>>s)&1:#Wenn du kaufst
            temp.append(s)#Fügen Sie Bücher hinzu, um zu kaufen
            for y in range(m):
                job[y]+=item[s][y+1]#Verständnis hinzufügen
    for s in range(len(job)):
        if job[s]<x:#Wenn das Verständnisniveau kleiner als X ist, brechen Sie
            break
    else:#Wenn alles Verständnis X oder höher ist
        money=0
        for s in temp:#Berechnen Sie den Gesamtbetrag
            money+=item[s][0]
        bag.append(money)
#Wenn es nicht mehr als eine Kombination zum Kaufen gibt-Ausgabe 1
print(min(bag) if len(bag)>=1 else -1)

D - Teleporter Wenn Sie K-mal für drehen, ist es nur TLE, sodass Sie gehen können, wenn am Anfang und am Ende der Schleife ein Überschuss vorhanden ist. Ich dachte, aber ich konnte nicht gehen. Jemand sagt es mir. Übrigens wird ein Beispiel für die Problemstellung gemacht.


n,k=map(int,input().split())
a=[int(i)-1 for i in input().split()]
ed=[False]*n
go=0
c=0
cc=0
while not ed[go]:#Beenden Sie, wenn Sie bereits bestanden haben
    print(a[go]+1)
    ed[go]=True
    go=a[go]
    c+=1
ed=[False]*n
print()
while not ed[go]:#Die zweite Schleife kann unterschiedlich sein 6,5,2,5,3,Im Fall von 2, 6,2,5,3,2,5,3,2,5,...Wird
    print(a[go]+1)
    ed[go]=True
    go=a[go]
    cc+=1#Als weitere Variable speichern
print()
for i in range((k-c)%cc):
    print(a[go]+1)
    go=a[go]
print()
print(go+1)

Nachtrag Es war möglich, während zusammenzusetzen, den Wert zu speichern, ohne den Druck mit for zu drehen, und die Ausgabe hinzuzufügen, wenn die Schleife nie geloopt wurde.

n,k=map(int,input().split())
a=[int(i)-1 for i in input().split()]
p=0
visited=[0]*n
first=[]
roop=[]
while visited[p]!=2:#Hör auf, wenn du zweimal gehst
    if visited[p]==0:#Ich ging zum ersten Mal
        first.append(p)
    else:#Einmal bestanden
        roop.append(p)
    visited[p]+=1#Eine Markierung machen
    p=a[p]#Teleportieren
if len(first)>k:#Wenn es nie Schleifen gibt
    print(first[k]+1)#Erster kth
else:
    print(roop[(k-(len(first)-len(roop)))%len(roop)]+1)#Andernfalls subtrahieren Sie die erste und die zweite Schleife von k und den Überschuss der Häufigkeit der zweiten Schleife

Schließlich

E und F konnten nicht erreichen. Es war meine dritte Herausforderung, aber es war schwierig. Ich dachte, ich müsste mehr Algorithmen lernen und logisch denken können. Das neue Rating ist übrigens 68.

Recommended Posts

AtCoder Beginner Contest 167 Memorandum
AtCoder Anfängerwettbewerb 177
AtCoder Anfängerwettbewerb 179
AtCoder Anfängerwettbewerb 172
AtCoder Anfängerwettbewerb 180
AtCoder Anfängerwettbewerb 173
Atcoder Anfänger Wettbewerb 153
AtCoder Anfängerwettbewerb 152 Rückblick
AtCoder Anfängerwettbewerb 181 Hinweis
AtCoder Beginner Contest 160 Bewertung
AtCoder Anfängerwettbewerb 178 Bewertung
AtCoder Anfängerwettbewerb 180 Hinweis
AtCoder Anfängerwettbewerb 166 Bewertung
AtCoder Anfängerwettbewerb 167 Bewertung
AtCoder Anfängerwettbewerb 182 Hinweis
AtCoder Beginner Contest 164 Bewertung
AtCoder Beginner Contest 169 Bewertung
AtCoder Beginner Contest 181 Bewertung
AtCoder Beginner Contest 171 Bewertung
AtCoder Beginner Contest 182 Bewertung
AtCoder Beginner Contest 180 Bewertung
AtCoder Anfängerwettbewerb 156 WriteUp
AtCoder Anfängerwettbewerb 177 Rückblick
AtCoder Anfängerwettbewerb 168 Bewertung
AtCoder Beginner Contest 179 Bewertung
AtCoder Beginner Contest 172 Bewertung
AtCoder Anfängerwettbewerb 183 Hinweis
AtCoder Anfängerwettbewerb 176 Bewertung
AtCoder Anfängerwettbewerb 184 Hinweis
AtCoder Anfängerwettbewerb 175 Bewertung
AtCoder Anfängerwettbewerb 174 Bewertung
AtCoder Beginner Contest 153 Bewertung
AtCoder Anfängerwettbewerb 156 Bewertung
AtCoder Beginner Contest 161 Bewertung
AtCoder Beginner Contest 170 Bewertung
AtCoder Beginner Contest 165 Bewertung
AtCoder Beginner Contest 173 Bewertung
AtCoder Anfängerwettbewerb 155 Bewertung
AtCoder Beginner Contest 162 Bewertung
AtCoder Beginner Contest 181 Teilnahmebericht
AtCoder Beginner Contest 175 Virtueller Eintrag
AtCoder Beginner Contest 161 Teilnahmebericht
AtCoder Beginner Contest 151 Teilnahmebericht
AtCoder Beginner Contest 176 Teilnahmebericht
AtCoder Beginner Contest 154 Teilnahmebericht
AtCoder Beginner Contest # 003 Teilnahmehinweis
AtCoder Beginner Contest 166 Teilnahmebericht
AtCoder Beginner Contest # 002 C Problem
AtCoder Beginner Contest 145 Teilnahmebericht
AtCoder Beginner Contest 184 Teilnahmebericht
AtCoder Beginner Contest 165 Teilnahmebericht
AtCoder Beginner Contest 160 Teilnahmebericht
AtCoder Beginner Contest 169 Teilnahmebericht
AtCoder Beginner Contest 159 Teilnahmebericht
AtCoder Beginner Contest 164 Teilnahmebericht
AtCoder Beginner Contest 168 Teilnahmebericht
AtCoder Beginner Contest 150 Teilnahmebericht
AtCoder Beginner Contest 158 Teilnahmebericht
AtCoder Beginner Contest 180 Teilnahmebericht