[PYTHON] AtCoder Beginner Contest 069 Revue des questions précédentes

La deuxième question que j'ai résolue auparavant

Temps requis

スクリーンショット 2019-12-24 12.11.47.png

Problème A

Vous pouvez comprendre si vous pensez à la figure

answerA.py


n,m=map(int,input().split())
print((n-1)*(m-1))

Problème B

Indice négatif pratique

answerB.py


s=input()
l=len(s)
print(s[0]+str(l-2)+s[-1])

Problème C

Impression difficile la première fois que je l'ai vue Si vous le divisez en trois parties: un multiple de 4 (①), un multiple de 2 qui n'est pas un multiple de 4, (②) et un nombre impair (③), vous pouvez venir avant et après ①, et ① avant et après ②. Il doit être ②, et ① doit venir avant et après ③. Par conséquent, ** première ligne à partir de ③, qui a des restrictions strictes **. Si vous y réfléchissez un instant, disposer alternativement ① et ③ est une manière d'arranger pour que ③ satisfasse la condition, mais ① est moins utilisé. Compte tenu d'un tel arrangement, cela devient comme suit. (Des cas se produiront.)

IMG_1698.JPG

J'ai essayé de le résoudre rapidement et l'instruction if est devenue redondante, alors je l'ai réécrite dans le commentaire.

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")
'''

Problème D

Personnellement, C était plus difficile, et je pense l'avoir vu avant un problème similaire à celui-ci. N types de couleurs sont donnés et peints de manière à être connectés verticalement et horizontalement. À ce stade, vous pouvez décider comment appliquer ** par vous-même , afin de pouvoir l'appliquer horizontalement afin que tous soient connectés (choisissez celui que vous aimez, horizontalement ou verticalement !!). À ce stade, les lignes paires (à partir de 0) sont peintes de gauche à droite et les lignes impaires sont peintes de droite à gauche. En outre, il est bon de conserver des informations sur la couleur que vous peignez actuellement. ( Il est pratique de conserver une information distincte sur les informations dont vous disposez pour tracer les problèmes **) De plus, comme il est pratique de pouvoir boucler dans la direction opposée avec le récemment appris for j in range (w-1, -1, -1):, je vais l'utiliser activement. (Il est décidé de décrémenter la variable de boucle avec le troisième argument)

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#Où cherchez-vous maintenant
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

AtCoder Beginner Contest 102 Revue des questions précédentes
AtCoder Beginner Contest 072 Revue des questions précédentes
AtCoder Beginner Contest 085 Revue des questions précédentes
AtCoder Beginner Contest 062 Revue des questions précédentes
AtCoder Beginner Contest 051 Revue des questions précédentes
AtCoder Beginner Contest 127 Revue des questions précédentes
AtCoder Beginner Contest 119 Revue des questions précédentes
AtCoder Beginner Contest 151 Revue des questions précédentes
AtCoder Beginner Contest 075 Revue des questions précédentes
AtCoder Beginner Contest 110 Revue des questions précédentes
AtCoder Beginner Contest 117 Revue des questions précédentes
AtCoder Beginner Contest 070 Revue des questions précédentes
AtCoder Beginner Contest 105 Revue des questions précédentes
AtCoder Beginner Contest 112 Revue des questions précédentes
AtCoder Beginner Contest 076 Revue des questions précédentes
AtCoder Beginner Contest 089 Revue des questions précédentes
AtCoder Beginner Contest 069 Revue des questions précédentes
AtCoder Beginner Contest 079 Revue des questions précédentes
AtCoder Beginner Contest 056 Revue des questions précédentes
AtCoder Beginner Contest 087 Revue des questions précédentes
AtCoder Beginner Contest 067 Revue des questions précédentes
AtCoder Beginner Contest 093 Revue des questions précédentes
AtCoder Beginner Contest 046 Revue des questions précédentes
AtCoder Beginner Contest 123 Revue des questions précédentes
AtCoder Beginner Contest 049 Revue des questions précédentes
AtCoder Beginner Contest 078 Revue des questions précédentes
AtCoder Beginner Contest 081 Revue des questions précédentes
AtCoder Beginner Contest 047 Revue des questions précédentes
AtCoder Beginner Contest 060 Revue des questions précédentes
AtCoder Beginner Contest 104 Revue des questions précédentes
AtCoder Beginner Contest 057 Revue des questions précédentes
AtCoder Beginner Contest 121 Revue des questions précédentes
AtCoder Beginner Contest 126 Revue des questions précédentes
AtCoder Beginner Contest 090 Revue des questions précédentes
AtCoder Beginner Contest 103 Revue des questions précédentes
AtCoder Beginner Contest 061 Revue des questions précédentes
AtCoder Beginner Contest 059 Revue des questions précédentes
AtCoder Beginner Contest 044 Revue des questions précédentes
AtCoder Beginner Contest 083 Revue des questions précédentes
AtCoder Beginner Contest 048 Revue des questions précédentes
AtCoder Beginner Contest 124 Revue des questions précédentes
AtCoder Beginner Contest 116 Revue des questions précédentes
AtCoder Beginner Contest 097 Revue des questions précédentes
AtCoder Beginner Contest 088 Revue des questions précédentes
AtCoder Beginner Contest 092 Revue des questions précédentes
AtCoder Beginner Contest 099 Revue des questions précédentes
AtCoder Beginner Contest 065 Revue des questions précédentes
AtCoder Beginner Contest 053 Revue des questions précédentes
AtCoder Beginner Contest 094 Revue des questions précédentes
AtCoder Beginner Contest 063 Revue des questions précédentes
AtCoder Beginner Contest 107 Revue des questions précédentes
AtCoder Beginner Contest 071 Revue des questions précédentes
AtCoder Beginner Contest 064 Revue des questions précédentes
AtCoder Beginner Contest 082 Revue des questions précédentes
AtCoder Beginner Contest 084 Revue des questions précédentes
AtCoder Beginner Contest 068 Revue des questions précédentes
AtCoder Beginner Contest 058 Revue des questions précédentes
AtCoder Beginner Contest 043 Revue des questions précédentes
AtCoder Beginner Contest 098 Revue des questions précédentes
AtCoder Beginner Contest 114 Revue des questions précédentes
AtCoder Beginner Contest 045 Revue des questions précédentes