[PYTHON] AtCoder Beginner Contest 109 Rückblick auf frühere Fragen

Benötigte Zeit

スクリーンショット 2020-04-26 9.25.40.png

Impressionen

Ich bin froh, dass das alte Problem eine gute Leistung hat, aber ich bin gut darin, also möchte ich meine Gedanken straffen. Ich bin nicht gut in DP, deshalb würde ich gerne bald Maßnahmen gegen DP ergreifen (ich glaube, es gab so etwas wie einen DP-Wettbewerb).

Problem A

Finden Sie heraus, ob $ A \ times B $ ungerade oder gerade ist.

answerA.py


a,b=map(int,input().split())
print("Yes" if (a*b)%2==1 else "No")

B-Problem

Es nimmt die Zeichenfolgen als Eingabe in der Reihenfolge und prüft, ob der erste Buchstabe mit dem Ende des vorherigen Wortes übereinstimmt. Speichern Sie außerdem die Zeichenfolge im Satz und prüfen Sie, ob eine Abdeckung vorhanden ist.

answerB.py


n=int(input())
now=input()
s=set()
s.add(now)
for i in range(n-1):
    now2=input()
    if now[-1]!=now2[0]:
        print("No")
        break
    now=now2
    s.add(now)
else:
    if len(s)==n:
        print("Yes")
    else:
        print("No")

C-Problem

Sie können nur y → y + D, y-D bewegen, und da Sie sich am Anfang an der Koordinate X befinden, können Sie nur Koordinaten besuchen, bei denen der Abstand von X ein Vielfaches von D ist. Da nur die maximale Anzahl in D berücksichtigt werden muss, ist die maximale Verpflichtung die Lösung, wenn der Abstand der Koordinaten $ x_1, x_2,…, x_n $ von der X-Koordinate berücksichtigt wird.

answerC.py


from fractions import gcd
n,X=map(int,input().split())
x=list(map(int,input().split()))
ans=abs(X-x[0])
for i in range(1,n):
    ans=gcd(abs(X-x[i]),ans)
print(ans)

D Problem

Erstens ist es schwierig, die Anzahl der Münzen für jedes Quadrat gerade zu machen, da Sie eine Münze für jedes Quadrat bewegen können und es nur ** gerade oder ungerade ** gibt. Ich fand, dass es keine ** gibt. Daher dachte ich an eine Operation, bei der eine gerade Anzahl von Münzen für alle Quadrate ** hergestellt werden kann. Als ich dann auf jede Zeile achtete, stellte ich fest, dass eine solche Operation möglich zu sein scheint, indem ich die Gleichmäßigkeit der Anzahl der Münzen in jedem Quadrat vom linken zum rechten Ende überprüfe. Mit anderen Worten, wenn die Anzahl der Münzen auf dem Quadrat, das Sie überprüfen, ungerade ist, bewegen Sie eine Münze nach rechts, und wenn sie gerade ist, bewegen Sie sie nicht. Auf diese Weise können Sie ** die Anzahl der Münzen für alle Zeilen mit Ausnahme des Quadrats ganz rechts gerade machen **. Darüber hinaus können Sie die Anzahl der Quadrate mit einer geraden Anzahl von Münzen maximieren, indem Sie die Münzen für das Quadrat ganz rechts (dh die Spalte ganz rechts W) von oben nach unten bewegen. Sie können auch keine Münzen auf den Feldern (H, W) bewegen. Wenn jedoch die Gesamtzahl der Münzen auf allen Feldern ungerade ist, können Sie nur die Anzahl der Münzen auf diesem Feld zu einer ungeraden Zahl machen. Im Gegenteil, wenn die Gesamtzahl der Münzen gerade ist, ist auch die Anzahl der Münzen in den (H, W) Quadraten gerade, so dass die Anzahl der Quadrate, in denen gerade Münzen platziert werden, maximiert werden kann. Ich verstehe.

✳︎ Die letzte Ausgabe war 1WA, da sie als Array ausgegeben wurde. Nicht vernachlässigen ** Überprüfen Sie das Ausgabeformat **.

answerD.py


h,w=map(int,input().split())
a=[list(map(int,input().split())) for i in range(h)]
ans=[]
for i in range(h):
    for j in range(w-1):
        if a[i][j]%2==1:
            a[i][j+1]+=1
            a[i][j]-=1
            ans.append([i+1,j+1,i+1,j+2])
for i in range(h):
    if a[i][w-1]%2==1:
        if i!=h-1:
            a[i+1][w-1]+=1
            a[i][w-1]-=1
            ans.append([i+1,w,i+2,w])
l=len(ans)
print(l)
for i in range(l):
    print(" ".join(map(str,ans[i])))

Recommended Posts

AtCoder Beginner Contest 102 Rückblick auf frühere Fragen
AtCoder Beginner Contest 072 Rückblick auf frühere Fragen
AtCoder Beginner Contest 085 Rückblick auf frühere Fragen
AtCoder Beginner Contest 062 Rückblick auf frühere Fragen
AtCoder Beginner Contest 113 Rückblick auf frühere Fragen
AtCoder Beginner Contest 074 Rückblick auf frühere Fragen
AtCoder Beginner Contest 051 Rückblick auf frühere Fragen
AtCoder Beginner Contest 127 Rückblick auf frühere Fragen
AtCoder Beginner Contest 119 Rückblick auf frühere Fragen
AtCoder Beginner Contest 151 Rückblick auf frühere Fragen
AtCoder Beginner Contest 075 Rückblick auf frühere Fragen
AtCoder Beginner Contest 054 Rückblick auf frühere Fragen
AtCoder Beginner Contest 110 Rückblick auf frühere Fragen
AtCoder Beginner Contest 070 Rückblick auf frühere Fragen
AtCoder Beginner Contest 105 Rückblick auf frühere Fragen
AtCoder Beginner Contest 112 Rückblick auf frühere Fragen
AtCoder Beginner Contest 089 Rückblick auf frühere Fragen
AtCoder Beginner Contest 069 Rückblick auf frühere Fragen
AtCoder Beginner Contest 079 Rückblick auf frühere Fragen
AtCoder Beginner Contest 056 Rückblick auf frühere Fragen
AtCoder Beginner Contest 087 Rückblick auf frühere Fragen
AtCoder Beginner Contest 067 Rückblick auf frühere Fragen
AtCoder Beginner Contest 093 Rückblick auf frühere Fragen
AtCoder Beginner Contest 046 Rückblick auf frühere Fragen
AtCoder Beginner Contest 123 Überprüfung früherer Fragen
AtCoder Beginner Contest 049 Rückblick auf frühere Fragen
AtCoder Beginner Contest 078 Rückblick auf frühere Fragen
AtCoder Beginner Contest 081 Rückblick auf frühere Fragen
AtCoder Beginner Contest 060 Rückblick auf frühere Fragen
AtCoder Beginner Contest 104 Rückblick auf frühere Fragen
AtCoder Beginner Contest 057 Rückblick auf frühere Fragen
AtCoder Beginner Contest 121 Rückblick auf frühere Fragen
AtCoder Beginner Contest 126 Rückblick auf frühere Fragen
AtCoder Beginner Contest 090 Rückblick auf frühere Fragen
AtCoder Beginner Contest 103 Rückblick auf frühere Fragen
AtCoder Beginner Contest 061 Rückblick auf frühere Fragen
AtCoder Beginner Contest 059 Rückblick auf frühere Fragen
AtCoder Beginner Contest 044 Rückblick auf frühere Fragen
AtCoder Beginner Contest 048 Rückblick auf frühere Fragen
AtCoder Beginner Contest 124 Rückblick auf frühere Fragen
AtCoder Beginner Contest 116 Rückblick auf frühere Fragen
AtCoder Beginner Contest 097 Rückblick auf frühere Fragen
AtCoder Beginner Contest 088 Rückblick auf frühere Fragen
AtCoder Beginner Contest 092 Rückblick auf frühere Fragen
AtCoder Beginner Contest 099 Rückblick auf frühere Fragen
AtCoder Beginner Contest 065 Rückblick auf frühere Fragen
AtCoder Beginner Contest 094 Rückblick auf frühere Fragen
AtCoder Beginner Contest 063 Rückblick auf frühere Fragen
AtCoder Beginner Contest 107 Rückblick auf frühere Fragen
AtCoder Beginner Contest 071 Rückblick auf frühere Fragen
AtCoder Beginner Contest 082 Rückblick auf frühere Fragen
AtCoder Beginner Contest 084 Rückblick auf frühere Fragen
AtCoder Beginner Contest 068 Rückblick auf frühere Fragen
AtCoder Beginner Contest 043 Rückblick auf frühere Fragen
AtCoder Beginner Contest 098 Rückblick auf frühere Fragen
AtCoder Beginner Contest 114 Rückblick auf frühere Fragen
AtCoder Beginner Contest 120 Rückblick auf frühere Fragen
AtCoder Beginner Contest 108 Rückblick auf frühere Fragen
AtCoder Beginner Contest 106 Rückblick auf frühere Fragen
AtCoder Beginner Contest 125 Rückblick auf frühere Fragen