Das D-Problem hat funktioniert (obwohl es schlecht implementiert wurde). Ich habe jedoch im Eckfall aufgrund der B- und C-Probleme einen Fehler gemacht und 3WA ausgegeben, daher möchte ich darüber nachdenken und es beim nächsten Mal nutzen.
Finden Sie einfach die Gegend.
answerA.py
a=input()
b=input()
h=input()
print((int(a)+int(b))*int(h)//2)
Sie müssen nur eine Simulation durchführen. Erfassen Sie genau, um welche Art von Zustand es sich in der while-Anweisung handelt. Überlegen Sie hier, wer an der Reihe ist und welche Alphabetkarte die Person hat.
answerB.py
s=[input() for i in range(3)]
l=[len(s[i]) for i in range(3)]
abc=[0,0,0]
now=0
while abc[now]!=l[now]:
s_sub=s[now][abc[now]]
abc[now]+=1
now=(0 if s_sub=="a" else 1 if s_sub=="b" else 2)
print("A" if now==0 else "B" if now==1 else "C")
Wenn die Länge der Zeichenkette l ist, kann + an l-1 Stellen eingegeben werden, und da ** l klein genug ist, können alle $ 2 ^ {l-1} $ Muster ** berücksichtigt werden. Masu (etwas vollständige Suche). Lassen Sie uns daher über die Addition mit der Stelle nachdenken, an der + eintritt. Betrachten Sie hier die Zeichenfolgen von Zahlen in der Reihenfolge von vorne, wenn + zwischen dem i-ten Zeichen und dem i + 1-ten Zeichen liegt, und betrachten Sie die Addition der Zahl auf der linken Seite und der Zahl auf der rechten Seite, und + ist das i-te Zeichen. Wenn es nicht zwischen die i + 1-Zeichen passt, betrachten Sie die Zahl auf der linken Seite und die Summe der Zahlen auf der rechten Seite als ** Zeichenfolge .
Schreiben Sie daher eine vollständige Suche, suchen Sie zwischen den Zahlen in der angegebenen Reihenfolge, und wenn + im j-ten eingegeben wird (j = 0 → l-2), ist die zu diesem Zeitpunkt gespeicherte Zeichenfolge (subst) eine Ganzzahl. Zusätzlich zu ans_sub (vergessen Sie nicht, die j + 1. Zahl auf subst zu setzen), wenn + nicht in jth eingegeben wird (j = 0 → l-2), fügen Sie es subst als Zeichenfolge hinzu. Der Code sieht folgendermaßen aus: ( Bit Ich frage mich, ob ich `(i >> j) & 1``` oder`
(1 << j) & i``` verwenden soll, um festzustellen, ob es im Code für die vollständige Suche 1 ist. Ich möchte vereinen ... **)
Wie ich später bemerkte, verringert sich die Menge an Code, die Sie schreiben, wenn Sie + dazwischen setzen und am Ende basierend auf + teilen.
answerC.py
s=input()
l=len(s)
ans=0
for i in range(2**(l-1)):
ans_sub=0
subst=s[0]
for j in range(l-1):
if (i>>j)&1:
ans_sub+=int(subst)
subst=s[j+1]
else:
subst+=s[j+1]
if j==l-2:
ans_sub+=int(subst)
ans+=ans_sub
if l==1:
print(int(s))
else:
print(ans)
Zuerst hatte ich das Gefühl, dass ich alle Quadrate überprüfen sollte, aber da es O (HW) ist, kann ich es nicht rechtzeitig schaffen. Wenn Sie hier auf die Anzahl der zu füllenden Quadrate achten, beträgt diese 10 ^ 5 oder weniger. Wenn Sie sich also auf ** Füllen ** konzentrieren, können Sie sehen, dass Sie ein Programm schreiben können. Wenn Sie hier ein bestimmtes Quadrat füllen, können Sie sehen, dass das Quadrat in der Tafel von $ 3 \ mal 3 $ enthalten ist, die auf den benachbarten Quadraten zentriert ist. Daher werden die benachbarten Quadrate (von denen die Quadrate, die die Tafel mit $ 3 \ mal 3 $ bilden) gespeichert, und die Quadrate, die in der Tafel mit $ 3 \ mal 3 $ enthalten sind, werden auf diesem Quadrat zentriert angezeigt. Sie können es jedes Mal aktualisieren, wenn Sie kommen. Außerdem ** ist es unmöglich, alle Koordinaten des Zentrums in Bezug auf die räumliche Berechnung zu speichern **, daher versuche ich, nur die Koordinaten zu speichern, die im Wörterbuch erscheinen (alle Quadrate, die nicht einmal erscheinen, sind ( Die Anzahl der Quadrate (die das Zentrum sein können) $ (h-2) \ times (w-2) $ kann von den Koordinaten abgezogen werden.)
answerD.py
h,w,n=map(int,input().split())
d=dict()
def change(a,b):
global h,w,d
if 1<=a<h-1 and 1<=b<w-1:
if (a,b) in d:
d[(a,b)]+=1
else:
d[(a,b)]=1
for i in range(n):
a,b=map(int,input().split())
a-=1
b-=1
for j in range(3):
for k in range(3):
change(a+j-1,b+k-1)
ans=[0]*10
ans[0]=(h-2)*(w-2)
for i in d:
ans[d[i]]+=1
ans[0]-=1
for i in range(10):
print(ans[i])
Recommended Posts