J'étais un professionnel de la compétition et j'ai commencé à étudier les algorithmes. Je voudrais expliquer la recherche peu complète, qui est le début de l'algorithme, avec la signification de la sortie. Je suis encore un jeune étudiant, veuillez donc signaler toute erreur. J'écrirai dans l'histoire principale du professionnel du concours.
C'est l'une des méthodes de recherche complète. Cette technique peut être utilisée lorsqu'il y a plusieurs variables et que chaque variable prend deux valeurs. bit signifie 0 et 1 dans l'ordinateur et prend deux valeurs. C'est assimilé à. Je pense que c'est difficile à comprendre à partir de l'explication des personnages, je vais donc en donner un exemple.
0,1 Seuls les deux nombres de peuvent être inclus dans la liste. La longueur de la liste est de 3. Énumérez toutes les listes possibles.
bit.py
for i in range(2**3): #1
list=[0]*3 #2
for k in range(3): #3
if ((i>>k)&1): #4
list[k]=1 #5
print(list)
1 Chaque élément de la liste a 2 types, 1 ou 0, donc le nombre d'éléments est 2 ** (le nombre d'éléments) 2 Créez une liste temporaire. Il sera réécrit plus tard en fonction du résultat de l'opération de bit. Au fait, [0] * 3 = [0,0,0]. 3 La longueur de la liste est de 3, vous pouvez donc la décaler jusqu'à 2 fois. 4 C'est la partie centrale de la recherche complète de bits. i >> k signifie décaler i vers la gauche k fois. Puisque & indique et, cette ligne signifie "i >> k signifie si i est décalé à gauche k fois et 1 est vrai".
https://atcoder.jp/contests/abc045/tasks/arc061_a
N'apportez pas le n ° 2 sur la boucle for