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

Benötigte Zeit

スクリーンショット 2020-02-27 18.45.04.png

Impressionen

Es ist zu einfach und es fühlt sich seltsam an. Immerhin ist das ABC-Niveau heutzutage zu hoch ...

Problem A

Ob Sie kleine hinzufügen können, um eine große zu machen

answerA.py


x=list(map(int,input().split()))
x.sort()
if x[0]+x[1]==x[2]:
    print("Yes")
else:
    print("No")

B-Problem

Um den Bereich des Rechtecks zu finden, ist es ausreichend, die x, y-Koordinaten unten links und die x, y-Koordinaten oben rechts zu kennen. Da sich das Rechteck aufgrund der angegebenen Informationen verengt, ist es ausreichend, die Fälle anhand des Werts von a zu klassifizieren. Auch a2-a1 und a4-a3 können jeweils sein, aber in diesem Fall kann kein Rechteck erstellt werden, daher muss es auf 0 gesetzt werden.

answerB.py


w,h,n=map(int,input().split())
a1,a2,a3,a4=0,w,0,h
for i in range(n):
    x,y,a=map(int,input().split())
    if a==1:
        a1=max(a1,x)
    elif a==2:
        a2=min(a2,x)
    elif a==3:
        a3=max(a3,y)
    else:
        a4=min(a4,y)
print(max(a2-a1,0)*max(a4-a3,0))

C-Problem

Da ersichtlich ist, dass ein kontinuierlicher Farbabschnitt durch eine Operation invertiert wird, ist ersichtlich, dass die Anzahl der Abschnitte durch diese Operation um eins verringert wird. Da es ausreichend ist, diesen Vorgang zu wiederholen, um alles zu einem Abschnitt zu machen, ist die Anzahl der Abschnitte 1 die Anzahl der zu erhaltenen Steine. Darüber hinaus kann die Anzahl der Abschnitte leicht ermittelt werden, indem eine selbst erstellte Gruppierung nach Funktionen verwendet wird.

answerC.py


def groupby(a):
    a2=[[a[0],1]]
    for i in range(1,len(a)):
        if a2[-1][0]==a[i]:
            a2[-1][1]+=1
        else:
            a2.append([a[i],1])
    return a2

s=groupby(input())
print(len(s)-1)

D Problem

Da die Problemstellung sehr lang ist, dachte ich, es sei ein schwieriges Problem, aber nichts war schwierig und ich habe den Beat verpasst. (Ich habe lange gebraucht, um mich fertig zu machen. ** Ich möchte mich an die langen Sätze gewöhnen! **)

Erstens, da Sie zu Beginn 0 Äpfel haben und insgesamt T kaufen und verkaufen, können Sie sehen, dass der Gewinn maximal ist, wenn Sie T // 2 in einer Stadt kaufen und verkaufen, in der der Betragsunterschied am größten ist. Ich werde. Daher möchten Sie herausfinden, welche Stadtgruppe (i, j) ** den größten Betragsunterschied aufweist. Wenn Sie beide Stadtgruppen hierher ziehen, erhöht sich der Rechenaufwand, daher habe ich auf ** der beiden Städte geachtet, die Äpfel verkaufen **. Zu diesem Zeitpunkt ist die Stadt, in der Sie Äpfel kaufen sollten, eindeutig bestimmt. Dies liegt daran, dass Äpfel die billigsten der Städte 1 ~ j-1 sind. Wenn Apple zu diesem Zeitpunkt nach der billigsten Stadt aus den Städten 1 bis j-1 für jede Stadt j sucht, beträgt der Berechnungsbetrag 0 ($ n ^ 2 $) und ist nicht rechtzeitig, also ** kumulative Summe Das Minimum benachbarter Objekte wird berechnet ** ("Minimum in Stadt 1 ~ j" ist gleich "Minimum in Stadt 1 ~ j-1 und Minimum zwischen Stadt j"). Daher können Sie den Gewinn reduzieren, indem Sie den Preis für einen Apfel (nur einen Yen) für die Gruppe der Stadt senken oder erhöhen, in der der Unterschied im Geldbetrag am größten ist. ** Zählen Sie also die Anzahl der Gruppen einer solchen Stadt Es ist gut ** (Da der Preis für Äpfel in jeder Stadt unterschiedlich ist, können Sie einfach die Anzahl der Paare zählen. Wenn Sie Äpfel zum gleichen Preis haben, können Sie den Gewinn zu geringeren Kosten reduzieren, dies hängt jedoch von Einschränkungen ab Es gibt keinen Apfel zum gleichen Preis in der Stadt.)

answerD.py


n,t=map(int,input().split())
a=list(map(int,input().split()))
x=[0]*n
x[0]=a[0]
for i in range(1,n):
    x[i]=min(x[i-1],a[i])
d=dict()
for i in range(1,n):
    y=a[i]-x[i-1]
    if y>0:
        if y in d:
            d[y]+=1
        else:
            d[y]=1
d=list(d.items())
d.sort(reverse=True)
print(d[0][1])

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 047 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 083 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 053 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 064 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