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

Temps requis

スクリーンショット 2020-03-31 16.13.43.png

Impressions

Le problème D était terrible. C'était plus tard que lorsque je le résolvais en décembre. Je vais l'examiner fermement.

Problème A

Puisqu'il est diagonal, les numéros de ligne et de colonne sont les mêmes.

answerA1.py


s=[input()[i] for i in range(3)]
print("".join(s))

Problème B

Jugez s'il s'agit d'une circulation de A à B dans l'ordre. Vous n'avez qu'à juger un personnage à la fois.

answerB.py


a,b=map(int,input().split())
ans=0
for i in range(a,b+1):
    s=str(i)
    l=len(s)
    for i in range(l//2):
        if s[i]!=s[l-1-i]:
            break
    else:
        ans+=1
print(ans)

Problème C

** J'ai mal lu l'énoncé du problème ** et j'ai pensé qu'il y avait ** des cartes dans les 9 cases **, mais c'était facile parce que je devais seulement ** exister **. C'est douloureux.

answerC.py


n,m=map(int,input().split())
if n==1 and m==1:
    print(1)
elif n==1:
    print(m-2)
elif m==1:
    print(n-2)
else:
    print((n-2)*(m-2))

Problème D

Le moyen le plus simple est de déplacer à la fois a et b, mais c'est O ($ n ^ 2 ) donc il est trop tard. Dans ce problème, il ressort clairement des expériences qu'il existe une relation entre les deux nombres **, il suffit donc de corriger l'un et de bien trouver l'autre avec O (1) ** J'ai pensé que ça pourrait l'être. En ce qui concerne celui à corriger ici, j'ai trouvé que si ** a est fixe, le déplacement de b entraînera des mouvements irréguliers **. Par conséquent, considérez cela comme une réparation b. Tout d'abord, en considérant la plage de b, le reste est k ou plus, donc c'est k + 1 ~ n. Je vais le fixer dans cette plage, mais avant cela, je pensais que ** il est difficile de penser que le reste est k + 1 ~ n **, j'ai donc décidé de le dessiner compte tenu de son ensemble complémentaire. Par conséquent, considérons que ** soustrayez le reste de 0 à k-1 du nombre de combinaisons de b de k + 1 ~ n et a de 1 ~ n ( (nk) \ times n $) **. Considérons a ** où b est divisé par k + 1 ~ n et le reste est 0 ~ k-1. Une exportation généralisée de ces ** candidats ** ressemblerait à ceci:

Considérez le nombre de candidats pour un ci-dessus. Tout d'abord, pour l ci-dessus, il suffit de considérer combien de b sont inférieurs à n, il peut donc être calculé par n // b. De plus, le nombre de nombres entre l * b + 1 et n qui ont un reste de 0 à k-1 est le plus petit de n divisé par b et k-1 (où k = Quand il vaut 0, k-1 devient négatif, donc il est supposé être supérieur à 0). La réponse peut être obtenue en soustrayant les candidats ci-dessus pour a ** et en réfléchissant à cela en déplaçant b.

A travers ce problème

Expérimentez et comprenez le comportement

Écrivez-le et réfléchissez-y lors de la généralisation

J'ai appris ça.

answerD.py


n,k=map(int,input().split())
ans=n*(n-k)
for i in range(k+1,n+1):
    ans-=(k*(n//i))
    ans-=max(0,min(k-1,n%i))
print(ans)

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 113 Revue des questions précédentes
AtCoder Beginner Contest 074 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 054 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 069 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 049 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 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
AtCoder Beginner Contest 120 Revue des questions précédentes
AtCoder Beginner Contest 108 Revue des questions précédentes
AtCoder Beginner Contest 106 Revue des questions précédentes