** Streben Sie einen hellblauen Codierer an! !! !! !! !! !! ** **.
Damit [Richtlinien zur Verbesserung von AtCoder, einem von Red Coder gelehrten Wettbewerbsprofi [Zwischenausgabe: Ziel für hellblauen Coder! ]]( https://qiita.com/e869120/items/eb50fdaece12be418faa#2-3-%E5%88%86%E9%87%8E%E5%88%A5%E5%88%9D%E4%B8%AD%E7 % B4% 9A% E8% 80% 85% E3% 81% 8C% E8% A7% A3% E3% 81% 8F% E3% 81% B9% E3% 81% 8D% E9% 81% 8E% E5% 8E % BB% E5% 95% 8F% E7% B2% BE% E9% 81% B8-100-% E5% 95% 8F) (@ e869120)
AtCoder hat 100 gute pädagogische Fragen gesammelt, die für braune und grüne Codierer geeignet sind, um mit einer kleinen Anzahl von Fragen einen hellblauen Codierer oder eine Bewertung von 1200 zu erzielen.
"100 frühere Fragen, die Anfänger und Fortgeschrittene in diesem Artikel lösen sollten" Wird mit ** Python ** gelöst! Vielen Dank an @ e869120! !! !! !! !! !!
** Alle durchsuchen: Alle auflisten ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 1/22] ** Vollständige Suche: Alle Aufzählungen zur Reduzierung der Anzahl der Straßen durch Ausarbeitung ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Part2 / 22] ** Vollständige Suche: Bit vollständige Suche ** [[Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil3 / 22]] (https://qiita.com/rudorufu1981/items/74d5f37c26c62fc7a27f) ** Vollständige Suche: Vollständige Suche weiterleiten ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Part4 / 22] ** Halbierungssuche ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Part5 / 22] ** Suche nach Tiefenpriorität ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Part6 / 22] ** Suche nach Breitenpriorität ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Part7 / 22] ** Dynamische Planung: Knapsack DP ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 8/22] ** Dynamische Planungsmethode: Abschnitt DP ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 9/22] ** Dynamische Planungsmethode: Bit DP ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 10/22] ** Dynamische Planung: Andere ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 11/22] ** Problem mit der kürzesten Route: Dixtra-Methode ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 12/22] ** Problem mit der kürzesten Route: Worshall Floyd-Methode ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 13/22] ** Minimales Problem mit dem gesamten Flächenbaum ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 14/22] ** Schnelle Methode zur Beurteilung der Primzahl ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 15/22] ** Schnelle Leistungsberechnung ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 16/22] ** Problem mit Umkehrelement ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 17/22] ** Kumulative Summe ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 18/22] Union-Find [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 19/22] ** Andere Techniken ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 20/22] ** Umsetzungsfragen ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 2 1/22] ** Mathematische Probleme ** [Python] Ich habe versucht, 100 frühere Fragen zu lösen, die Anfänger und Fortgeschrittene lösen sollten [Teil 22/22]
** (Hinzugefügt am 2020/05/07) **
input()
→sys.stdin.readline().rstrip()
Ich wechsle zu!
[Python] Competitive Pro-Vorlage [At Coder]
Ich habe auch einen Artikel für die Vorlage erstellt. Bitte verwenden Sie ihn, wenn Sie ~ mögenWir werden die folgenden 4 Fragen lösen!
1 ITP1_7_B - Wie viele Möglichkeiten? Dies ist ein grundlegendes Problem. 2 AtCoder Beginner Contest 106 B - 105 3 AtCoder Beginner Contest 122 B - ATCoder 4 Paken Cup 2019 C-Karaoke Wenn Sie dies lösen können, können Sie denken, dass Sie an die vollständige Suche gewöhnt sind.
↓ Probleme, die in früheren Artikeln als ähnliche Themen aufgegriffen wurden! (Zu diesem Zeitpunkt habe ich es mit einem Triple für Satz gelöst!) [Python] ABC133B (Problem mit dem oberen rechten Dreieck) [At Coder]
Es gibt kein Problem mit dem Triple for Statement, Diesmal habe ich versucht, es zu einem doppelten Satz zu machen!
test.py
def LI(): return list(map(int,input().split()))
while 1:
n,x = LI()
if n==x==0:
break
ans = 0
for i in range(1,n+1):
for j in range(1,n+1):
k = x-i-j #Die Bedingung von k ist jedoch[1,n]
if 1<=k<=n and i<j<k:
ans += 1
print(ans)
** (Hinzugefügt am 2020/05/01) ** Jetzt schreibe ich den Code so.
test.py
import itertools
def LI(): return list(map(int,input().split()))
while 1:
n,x = LI()
if n==x==0:
break
ans = 0
for i,j,k in itertools.product(range(1,n+1),repeat=3):
if i<j<k and i+j+k==x:
ans += 1
print(ans)
Das Verschachteln wird mit itertools.product
nicht tiefer!
Daher ist es auch mit einem Tripel für Satz leicht zu verstehen.
** (Hinzugefügt am 2020/05/02) **
itertools.combinations
Das war schlauer! !! !!
test.py
import itertools
def LI(): return list(map(int,input().split()))
while 1:
n,x = LI()
if n==x==0:
break
ans = 0
for i,j,k in itertools.combinations(range(1,n+1),3):
if i+j+k==x:
ans += 1
print(ans)
2 AtCoder Beginner Contest 106 B - 105
Difficulty:66
Ich war fast tot!
Wenn das dritte Argument von "range" (Standard ist 1) zum Beispiel auf "2" gesetzt ist, wird eines übersprungen!
range (1, int (i ** 0.5) +1)
ist mein Favorit bei der Beurteilung von Primzahlen und der Suche nach Reduzierungen!
int ()
wird nach dem Dezimalpunkt abgeschnitten!
test.py
def I(): return int(input())
N = I()
ans = 0
if N>=105:
for i in range(105,N+1,2):
count_yakusuu = 0
for j in range(1,int(i**0.5)+1):
if i%j==0:
count_yakusuu += 2
if count_yakusuu==8:
ans += 1
print(ans)
~~ ** (Hinzugefügt am 20.04.2020) **
Übrigens in AtCoder,
Da die Version von ABC162 ~ Python3 sofort auf 3.8
gestiegen ist,
Zukünftige Wettbewerbe sind mit about → sympy.divisors ()
w einfach
(Nebenbei: Maximale Verpflichtungsnummer → math.gcd ()
kann jetzt verwendet werden! Ich habe es getan ~) ~~
** (Hinzugefügt am 2020/05/03) **
Ich konnte kein Sympy verwenden!
Ich glaube ich habe falsch verstanden ... Es tut mir leid ...
Maximales Engagement → math.gcd ()
Sie können dies verwenden! !! !!
Ich werde den Referenzcode vorerst hinterlassen ...
Referenzcode
test.py
import sympy
def I(): return int(input())
N = I()
ans = 0
if N>=105:
for i in range(105,N+1,2):
if len(sympy.divisors(i))==8:
ans += 1
print(ans)
3 AtCoder Beginner Contest 122 B - ATCoder Difficulty:85 Ich habe zwei Lösungen gefunden! Eine ist die übliche Giermethode. Der andere ist DP.
Lösung 1 (gierige Methode)
Finde alle möglichen Antwortkandidaten und überschreibe ans
!
test.py
S = input()
ans,temp = 0,0
for x in S:
if x in 'ACGT':
temp += 1
else:
temp = 0
ans = max(ans,temp)
print(ans)
Lösung 2 (DP) Mit dem zweiten Argument von "enumerate" (Standard ist 0), Der Index beginnt mit dieser Nummer!
test.py
S = input()
dp = [0]*(len(S)+1) #1_indexed
for i,x in enumerate(S,1):
if x in 'ACGT':
dp[i] = dp[i-1]+1
print(max(dp))
** (Hinzugefügt am 26. Mai 2020) ** Lösung 3 (Alle Teilzeichenfolgen durchsuchen) Verwenden der doppelten Kombination "itertools.combinations_with_replacement", Sie können alle Teilzeichenfolgen durchsuchen! !! !! Beeindruckend! !! !!
test.py
import itertools
S = input()
ans = 0
for i,j in itertools.combinations_with_replacement(range(len(S)),2):
if all([x in 'ACGT' for x in S[i:j+1]]):
ans = max(ans,j+1-i)
print(ans)
Nein, es war schwierig! Ein Problem, das die erste Frage Problem mit dem oberen rechten Dreieck mit der dritten Frage kombiniert. Ich habe jedoch das Gefühl, dass ich ab dem nächsten Mal reibungslos Code schreiben kann!
test.py
def LI(): return list(map(int,input().split()))
N,M = LI()
A = [LI() for _ in range(N)]
ans = 0
for i in range(M):
for j in range(i+1,M):
temp = 0
for k in range(N):
temp += max(A[k][i],A[k][j])
ans = max(ans,temp)
print(ans)
Eine andere Lösung
Dem obigen Code unterlegen. Der Code, der AC am Anfang gewonnen hat.
Wenn Sie mit "für x in A" beginnen, erhalten Sie komplizierten Code. .. ..
Bereiten Sie ein zweidimensionales Array zum vorübergehenden Speichern vor ...
Tauschen Sie die Warteschlangen aus und fügen Sie ...
Sein Maximalwert!
test.py
def LI(): return list(map(int,input().split()))
N,M = LI()
A = [LI() for _ in range(N)]
temp = [[0]*(M*(M-1)//2) for _ in range(N)]
for i,x in enumerate(A):
l = 0
for j in range(M):
for k in range(j+1,M):
l += 1
temp[i][l-1] = max(x[j],x[k])
print(max([sum(x) for x in (zip(*temp))]))
** (Hinzugefügt am 2020/05/01) ** Wurde ein "Numpy Master (vorläufig)"! Also schreibe ich jetzt den Code so.
test.py
import itertools,numpy as np
def LI(): return list(map(int,input().split()))
N,M = LI()
a = np.array([LI() for _ in range(N)])
ans = 0
for i,j in itertools.product(range(M),repeat=2):
if i<j:
ans = max(ans,a[:,[i,j]].max(axis=1).sum())
print(ans)
Wenn Sie Numpy werden können, ist dieser Code leichter zu lesen.
** Es ist interessant, np.max (). Sum ()
auf der Rückseite hinzuzufügen! !! !! ** **.
Wenn es sich um ein zweidimensionales Array oder mehr handelt, wird der wahre Charakter von Numpy demonstriert! vielleicht!
Nächstes Mal werde ich die folgenden 5 Fragen lösen!
5 AtCoder Beginner Contest 095 C - Half and Half 6 Sumitomo Mitsui Trust Bank Programmierwettbewerb 2019 D - GlückspIN 7 JOI 2007 Finale 3 - Die ältesten Ruinen sind interessant. Mit Python3 kann die hypothetische Lösung TLE sein. (PyPy3 ist oft pünktlich) 8 Square869120Contest # 6 B - AtCoder-Märkte Es scheint, dass es unzählige Straßen gibt, wenn Sie alle durchsuchen, aber wenn Sie eine entwerfen, ist es ein Problem, dass Sie alle mit realistischen Straßen aufzählen können. 9 JOI 2008 Qualifying 4-Suche nach Sternbildern
Part1/22 Ende!
Recommended Posts