Die zweite Frage, die ich zuvor gelöst habe
Sie können verstehen, wenn Sie an die Figur denken
answerA.py
n,m=map(int,input().split())
print((n-1)*(m-1))
Negativer Index praktisch
answerB.py
s=input()
l=len(s)
print(s[0]+str(l-2)+s[-1])
Eindruck, der schwierig war, als ich ihn zum ersten Mal sah Wenn Sie es in drei Teile teilen: ein Vielfaches von 4 (①), ein Vielfaches von 2, das kein Vielfaches von 4 ist (②), und eine ungerade Zahl (③), können Sie vor und nach ① und ① vor und nach ② kommen. Oder ② muss sein, ① muss vor und nach ③ kommen. Daher ** erste Zeile von ③, die strengen Einschränkungen unterliegt **. Wenn Sie einen Moment darüber nachdenken, können Sie ① und ③ abwechselnd so arrangieren, dass ③ die Bedingung erfüllt, ① jedoch weniger verwendet wird. Wenn Sie auf diese Weise arrangieren, gibt es kein Problem, wenn die verbleibenden ② kontinuierlich angeordnet sind. In Anbetracht einer solchen Anordnung wird es wie folgt. (Fälle werden auftreten.)
Ich habe versucht, es schnell zu lösen, und die if-Anweisung wurde überflüssig, daher habe ich sie im Kommentar neu geschrieben.
answerC.py
n=int(input())
a=[int(i) for i in input().split()]
x,y,z=0,0,0
for i in range(n):
if a[i]%4==0:
x+=1
elif a[i]%2==0:
y+=1
else:
z+=1
if y>0:
if z<=x:
print("Yes")
else:
print("No")
else:
if z<=x+1:
print("Yes")
else:
print("No")
'''
if y==0:
x+=1
if z<=x:
print("Yes")
else:
print("No")
'''
Persönlich war C schwieriger, und ich glaube, ich habe es vor einem ähnlichen Problem gesehen.
N Arten von Farben werden angegeben und gemalt, so dass sie vertikal und horizontal verbunden sind. Zu diesem Zeitpunkt können Sie selbst entscheiden, wie Sie ** anwenden möchten, sodass Sie es horizontal anwenden können, sodass alle miteinander verbunden sind (wählen Sie das gewünschte aus, entweder horizontal oder vertikal !!). Zu diesem Zeitpunkt werden die geraden Linien (beginnend mit 0) von links nach rechts und die ungeraden Linien von rechts nach links gezeichnet. Es ist auch gut, Informationen darüber zu behalten, welche Farbe Sie gerade malen. (** Es ist bequem, separate Informationen darüber aufzubewahren, welche Informationen Sie zur Rückverfolgung von Problemen haben **)
Da es praktisch ist, mit dem kürzlich erlernten für j im Bereich (w-1, -1, -1):
in die entgegengesetzte Richtung schleifen zu können, werde ich es auch aktiv verwenden. (Es wird beschlossen, die Schleifenvariable mit dem dritten Argument zu dekrementieren.)
answerD.py
h,w=map(int,input().split())
n=int(input())
a=list(map(int,input().split()))
hw=[[0 for i in range(w)] for i in range(h)]
k=0#Wo suchst du jetzt?
for i in range(h):
if i%2==0:
for j in range(w):
if a[k]==0:
k+=1
hw[i][j]=k+1
a[k]-=1
else:
for j in range(w-1,-1,-1):
if a[k]==0:
k+=1
hw[i][j]=k+1
a[k]-=1
for i in range(h):
print(" ".join(map(str,hw[i])))
Recommended Posts