[PYTHON] Codeforces Runde # 658 (Div. 2) Bacha Review (7/29)

Die Ergebnisse dieser Zeit

スクリーンショット 2020-07-30 11.49.41.png

Eindrücke dieser Zeit

Ich habe es wieder falsch verstanden, wie beim letzten Mal. Siehe C-Problem für Details. Es ist ineffizient, nur 3 Fragen innerhalb von 2 Stunden zu lösen, daher werden wir die Anzahl der Probleme, die gelöst werden können, schrittweise erhöhen.

Problem A

Wenn die kürzeste gemeinsame Teilzeichenfolge von $ a $ und $ b $ vorhanden ist, beträgt die Länge 1, sodass Sie eines der gemeinsamen Zeichen von $ a $ und $ b $ ausgeben können. Außerdem können Sie hier herausfinden, ob in $ a $ Zeichen enthalten sind, die auch in $ b $ enthalten sind, und wenn eines davon eine festgelegte Struktur hat, können Sie dies mit $ O (N) $ überprüfen.

A.py


t=int(input())
for _ in range(t):
    n,m=map(int,input().split())
    a=list(map(int,input().split()))
    b=set(map(int,input().split()))
    for i in a:
        if i in b:
            print("YES")
            print(f"1 {i}")
            break
    else:
        print("NO")

B-Problem

Zuallererst ist es ein Spielproblem, also ** achte auf den Endzustand **. Wenn Sie auf den Endzustand achten, werden alle Berge 0 sein, aber kurz davor bleibt nur der letzte Berg so wie er ist.

Ich habe hier darauf geachtet, ob ich jeden Berg verlassen soll oder nicht (** Binarisierung! **). Das heißt, wenn die Anzahl der Steine in jedem Berg mehr als 1 beträgt, kann der Spieler, der diesen Berg auswählt, dem Gegner keine Wahl geben. Dies kann erreicht werden, indem nur ein Stein vom Berg entfernt und der anderen Partei übergeben wird.

Wenn ** die Anzahl der Steine im Berg ursprünglich eins ist **, hat der Spieler, der den Berg auswählt, keine andere Wahl, als diesen einen Stein zu entfernen. Wenn Sie auf einem Berg mit mehr als einer Klappe arbeiten, können Sie daher einstellen, ob Sie einen Stein verlassen oder alle Steine von diesem Berg entfernen möchten, je nachdem, ob die Anzahl der Steine im nächsten Berg eins beträgt oder nicht. Wenn ein Berg mit nur einem Stein vom ersten Berg weitergeht, hat der Spieler keine Wahl, sodass der Spieler, der zum ersten Mal einen Berg ohne einen Stein wählen kann, die Wahl hat und gewinnt. Kann als möglich bezeichnet werden

B.py


t=int(input())
for i in range(t):
    n=int(input())
    a=list(map(int,input().split()))
    s=["First","Second"]
    ans=0
    for i in range(n):
        if a[i]!=1:
            ans=i
            break
    else:
        ans=n-1
    print(s[ans%2])

C1-Problem

Ich habe es komplett falsch verstanden. Ich dachte, dass die Inversionsoperation die gesamte Zeichenfolge ist, aber sie wurde geschrieben, als ich die Problemstellung oft sah, wenn ich sie nur mit dem von mir gewählten Präfix tat. In Codeforces habe ich den englischen Originaltext so gelesen, wie er ist, und es gibt viele Fehler. Daher möchte ich mich darauf konzentrieren, solche nicht wesentlichen Fehler zu beseitigen.

Was das Problem betrifft, sollte die erste Richtlinie darin bestehen, zu berücksichtigen, was mit dem $ i $ -ten Bit passiert (** Abstraktion **). Betrachten Sie zu diesem Zeitpunkt den Fall, dass nur das $ i $ -te Bit invertiert wird. Hier ist dies jedoch möglich, indem Sie in der Reihenfolge $ i $ → $ 1 $ → $ i $ auswählen. Außerdem wird es in dieser Simulation ungefähr 3n $ mal sein. Die erste $ i $ -Operation ändert das $ i $ -te Element in das $ 1 $ -te Element, sodass die $ 1 $ -Operation nur das ursprünglich $ i $ -te Element an diesem $ 1 $ -ten Element und schließlich $ umdreht Betrachten Sie es als Rückgängigmachen mit i $. Wenn Sie es nicht wissen, sollten Sie es zeigen. Ich bin der Meinung, dass solche Probleme nur auffindbar gelöst werden können, daher denke ich, dass das Wichtigste ** Vertrautheit und Experimentieren ** ist.

C1.py


#falsch verstanden ...
t=int(input())
for _ in range(t):
    n,a,b=int(input()),input(),input()
    ans=[]
    for i in range(n):
        if a[i]!=b[i]:
            ans.append(f"{i+1}")
            ans.append("1")
            ans.append(f"{i+1}")
    print(f"{len(ans)}"+" "+" ".join(ans))

Nach C2 Problem

Ich werde diesmal überspringen

Recommended Posts

Codeforces Runde # 658 (Div. 2) Bacha Review (7/29)
Codeforces Round # 654 (Div. 2) Bacha Review (8/18)
Codeforces Round # 594 (Div. 2) Bacha Review (29.10.)
Codeforces Runde # 609 (Div. 2) Bacha Review (10/8)
Codeforces Round # 597 (Div. 2) Bacha Review (27.10.)
Codeforces Runde # 666 (Div. 2) Bacha Review (9/2)
Codeforces Runde # 651 (Div. 2) Bacha Review (8/20)
Codeforces Runde # 659 (Div. 2) Bacha Review (8/5)
Codeforces Runde # 610 (Div. 2) Bacha Review (10/5)
Codeforces Runde # 479 (Div. 3) Bacha Review (9/25)
Codeforces Runde # 603 (Div. 2) Bacha Review (10/15)
Codeforces Runde # 600 (Div. 2) Bacha Review (10/21)
Codeforces Runde # 481 (Div. 3) Bacha Review (9/24)
Codeforces Runde # 639 (Div. 2) Bacha Review (9/4)
Codeforces Runde # 612 (Div. 2) Bacha Review (10/2)
Codeforces Runde # 521 (Div. 3) Bacha Review (10/9)
Codeforces Runde # 652 (Div. 2) Bacha Review (8/24)
Codeforces Runde # 673 (Div. 2) Bacha Review (10/22)
Codeforces Runde # 606 (Div. 3) Bacha Review (10/13)
Codeforces Runde # 613 (Div. 2) Bacha Review (10/1)
Codeforces Round # 665 (Div. 2) Bacha Review (8/23)
Codeforces Runde # 592 (Div. 2) Bacha Review (11/03)
Codeforces Runde # 662 (Div. 2) Bacha Review (8/8)
Codeforces Round # 618 (Div. 2) Bacha Review (9/26)
Codeforces Runde # 648 (Div. 2) Bacha Review (9/5)
Codeforces Runde # 676 (Div. 2) Bacha Review (10/31)
Codeforces Round # 675 (Div. 2) Bacha Review (30.10.)
Codeforces Runde # 486 (Div. 3) Bacha Review (9/23)
Codeforces Round # 671 (Div. 2) Bacha Review (9/22)
Codeforces Runde # 669 (Div. 2) Bacha Review (9/9)
Codeforces Runde # 672 (Div. 2) Bacha Review (10/16)
Codeforces Round # 638 (Div. 2) Bacha Review (9/16)
Codeforces Runde # 663 (Div. 2) Bacha Review (8/13)
Codeforces Runde # 668 (Div. 2) Bacha Review (9/7)
Codeforces Runde # 663 (Div. 2) Bacha Review (8/16)
Codeforces Runde # 609 (Div. 2) Bacha Review (10/6)
Codeforces Round # 645 (Div. 2) Bacha Review (9/10)
Codeforces Runde # 664 (Div. 2) Bacha Review (8/13)
Codeforces Round # 660 (Div. 2) Bacha Review (8/4)
Codeforces Round # 643 (Div. 2) Review
Codeforces Round # 679 (Div. 2) Review (10/25)
Codeforces Round # 657 (Div. 2) Review
Educational Codeforces Round 93 Bacha Review (8/17)
Educational Codeforces Round 94 Bacha Review (9/3)
Educational Codeforces Round 91 Bacha Review (7/28)
Bildungs-Codeforces-Runde 88 Bacha Review (8/4)
Educational Codeforces Round 86 Bacha Review (9/17)
Educational Codeforces Round 89 Bacha Review (9/8)
Educational Codeforces Round 92 Bacha Review (30.07.)
Educational Codeforces Round 90 Bacha Review (8/19)
Codeforces Runde # 609 (Div. 2) (bis B)
Bildungs-Codeforces-Runde 87
Codeforces Beta-Runde # 13
Codeforces Beta Runde 1
Codeforces Beta Runde 2
DP100 Frage Bacha Review 1 ~ 10 (8 / 26,27)
Codeforces Round # 626 B. Unterrechtecke zählen