[At Coder] Anfängerwettbewerb 175 Einführung in die ABCD-Python-Lösung

Noten

Ich habe zum ersten Mal teilgenommen. Ich habe ABC richtig beantwortet, aber das D-Problem hat mich frustriert. Der Algorithmus scheint korrekt zu sein, aber ich konnte den Fehler nicht bis zum Ende bringen. Die Leistung beträgt 904. image.png

Impressionen

Ich habe mir verschiedene Erklärungen angesehen, aber ich denke, es ist wichtig, das Problem einfach zu interpretieren (den Index von 0 zu korrigieren, negative Koordinaten in positive Koordinaten mit absoluten Werten zu verschieben usw.). Außerdem habe ich gelernt, dass es eine Lösungsmethode gibt, die alle auflistet, ohne sich speziell mit Automatisierung zu befassen. Und das nächste Mal möchte ich das D-Problem lösen.

Problem A

--Meine Antwort Ich habe die Anzahl der aufeinanderfolgenden Rs gezählt

A.py



input_str = input()
cnt = 0
max_cnt = 0
for tmp in input_str:
    if tmp == "R":
        cnt +=1
        max_cnt = max(cnt, max_cnt)
    else:
        cnt = 0
        
print(max_cnt)

A_.py


s=input()
if s=="RRR":
    print(3)
elif s=="RRS" or s=="SRR":
    print(2)
elif s=="SSS":
    print(0)
else:
    print(1)

--Muster Wenn man sich nur auf R konzentriert, scheint es zu beurteilen, ob es für jedes kontinuierliche Muster gilt. Referenz: https://qiita.com/u2dayo/items/ce1b420344e451560b42

A__.py


s = input()
ans = 0

for i in range(1, 4):
    p = "R" * i
    if p in s:
        ans = i

print(ans)

B-Problem

Ich denke, die Punkte waren wie folgt. (1) In mehreren Schleifen sollte der Mindestwert der inneren Schleife der äußere Stromwert + 1 sein. ② Ich habe gegoogelt, weil ich die Bedingungen des Dreiecks nicht kenne

B.py


N = int(input())
input_list = list(map(int, input().split()))
pair_list = []
def triangle_check(a,b,c):
    return all([a+b>c, b+c>a, c+a>b, a!=b, b!=c,c!=a])
 
if N < 3:
    print(0)
else:
    for i in range(N):
        for j in range(i+1,N):
            for k in range(j+1,N):
                if triangle_check(input_list[i],input_list[j],input_list[k]):
                    pair_list.append([input_list[i],input_list[j],input_list[k]])
    print(len(pair_list))

Übrigens habe ich falsch verstanden, dass es ein fortgeschritteneres Problem war, nur eindeutige Paare von Längenkombinationen zu zählen, und ich habe Zeit verloren. In diesem Fall wurde es mit dem folgenden Code implementiert. Referenz: https://medium.com/@yamasaKit/2-python%E3%81%A7list%E3%81%AE%E4%B8%AD%E3%81%AElist%E3%82%92unique%E3%81 % AB% E3% 81% 99% E3% 82% 8B% E6% 96% B9% E6% B3% 95-f38d20e6674f

del_list_dup.py


duplicated_data = [tuple(d) for d in duplicated_data]
unique_data = set(duplicated_data)
unique_data = [list(d) for d in unique_data]

C-Problem

Ich denke, die Punkte waren wie folgt.

c.py


X, K, D = list(map(int, input().split()))
X = abs(X)
syo, amari = divmod(X, D)
if amari > (D-amari):
    syo = syo +1
if syo >= K:
    print(X - K*D)
else: 
    remain_num = K - syo
    position = abs(X - syo*D)
    if remain_num%2 == 1:
        position = abs(position-D)
    print(position)

D Problem

(Die Antwort ist nicht korrekt. Es gibt einen Testfall, der zu RE wird, daher werden wir den Fehler beheben, sobald der Testfall veröffentlicht wird.) Ich denke, die Punkte waren wie folgt.

--Loop Erkennung

d.py


import numpy as np
N,K = list(map(int, input().split()))
input_list = list(map(int, input().split()))
input_list = list(np.array(input_list)-1)
c_list = list(map(int, input().split()))
 
def roop_func(l, i, start, return_list=[]):
    return_list.append(l[i])
    if l[i] == start:
        return return_list 
    return roop_func(l, l[i],start, return_list)
 
total_best = -100000000000000000000
for start in range(N):
    p_list = roop_func(input_list, start, start,[])
    epoc = sum([c_list[i] for i in p_list])
    if epoc <= 0: #Wenn es jedes Mal nach unten geht, dreht es sich
        best = c_list[p_list[0]]
        current_score = c_list[p_list[0]]
        for i in range(1, min(K, len(p_list))):
            current_score += c_list[p_list[i]]
            if best < current_score:
                best = current_score
    else: #Wenn es jedes Mal hoch geht, dreht es sich
        syo,amari = divmod(K, len(p_list))
        base = (syo-1) * epoc
        tmp = p_list
        p_list.extend(p_list[:amari])
        tmp2 = p_list
        best = c_list[p_list[0]] + base
        current_score = c_list[p_list[0]] + base
        for i in range(1, len(p_list)):
            current_score += c_list[p_list[i]]
            if best < current_score:
                best = current_score
    if best > total_best:
        total_best = best
        
print(total_best)

Recommended Posts

[At Coder] Anfängerwettbewerb 175 Einführung in die ABCD-Python-Lösung
[Python] [BFS] Beim Coder-Anfängerwettbewerb 168-D [.. Double Dots]
[Python] ABC159D (High School Mathematics nCr) [Bei Coder]
[Python] Competitive Pro-Vorlage [At Coder]
Atcoder Anfänger Wettbewerb 152 Kiroku (Python)
[Wettkampfpraxis] Ich habe den AtCoder Beginner Contest 175 (A ~ C) ausprobiert.
[At Coder] ABC085C - Otoshidamas Python-Antwort
(Python) ABC162-D Diskussionsprotokoll und Lösung
AtCoder Anfängerwettbewerb 174 C Problem (Python)
Bei Coder (2020/09/08)
Löse den AtCoder-Anfängerwettbewerb 170 D - Nicht teilbar (ABC170D) mit Python (Eratostenes-Sieb)
AtCoder Anfängerwettbewerb: D Problemantworten Python
[Python] ABC175D
[Python] ABC133B (Problem mit dem oberen rechten Dreieck) [At Coder]
Anfänger ABC154 (Python)
AtCoder Anfängerwettbewerb 177
Anfänger ABC156 (Python)
Python-Anfänger-Memo (9.2-10)
AtCoder Anfängerwettbewerb 179
Python-Anfänger-Memo (9.1)
Python-Anfängernotizen
[Python] DP ABC184D
[Anfänger] Python-Array
AtCoder Anfängerwettbewerb 172
AtCoder Anfängerwettbewerb 180
Löse den AtCoder-Anfängerwettbewerb159 D - Verbotenes K (ABC159D) mit Python (Anzahl ist zu langsam!)
Anfänger ABC155 (Python)
AtCoder Anfängerwettbewerb 173
Python bei Docker
[Anfänger] Python-Funktionen
Anfänger ABC157 (Python)
PyQ ~ Python Anfänger ~
Atcoder Anfänger Wettbewerb 153
Füllen Sie bei Coder
Python-Anfänger-Memo (2)
[Python] UnionFind ABC177D
Python-Anfänger Zundokokiyoshi
Bei Coder # 1 um Mitternacht
Einführung von Python
[Python] AGC043A (Problemlesefähigkeit und DP) [At Coder]
AtCoder Anfängerwettbewerb 176 C Problem "Schritt" Erklärung (Python3, C ++, Java)
Ich habe At Coder Beginner Selection ausprobiert