Résolvez ABC167-D avec Python

introduction

Résolvez D qui n'a pas pu être résolu hier

ABC167-DTeleporter

** Pensées ** Puisque $ K $ est gros, il semble qu'il ne peut être résolu que s'il est bouclé quelque part → Détectons la boucle. Et il sera classé selon la taille de $ K $. Tout ce que vous devez mettre en œuvre est une liste pour déterminer si vous êtes en visite et une liste pour enregistrer l'ordre des visites. La première liste empêche les boucles infinies et la dernière liste facilite la mise en œuvre ultérieure.

n, k = map(int,input().split())
a = list(map(int,input().split()))

s = [True] * n #Liste pour déterminer si vous visitez
c = [1] #Liste pour enregistrer l'ordre des visites
now = 0 #Localisation actuelle
while s[now]:
    s[now] = False #Enregistrez les points que vous avez visités
    now = a[now] - 1
    c.append(now+1)

start_cycle = c.index(c[-1]) #Pointez pour entrer dans la boucle
loop = c[start_cycle:-1] #Liste des boucles
cycle = len(loop)

if k < start_cycle: #K incapable d'atteindre la boucle
    print(c[k])
else:
    k -= start_cycle
    k %= cycle
    print(loop[k])

Résumé

Si j'étais calme, j'étais déçu car j'ai pu le résoudre pendant le concours. à plus.

Recommended Posts

Résolvez ABC167-D avec Python
Résoudre ABC159-D en Python
Résolvez ABC146-C avec Python
Résoudre ABC098-C en Python
Résolvez ABC169 avec Python
Résolvez ABC160-E avec Python
Résoudre ABC176 E en Python
Résolvez des exercices Wooldridge en Python
Résoudre ABC175 D en Python
[Python] ABC175D
Résoudre les problèmes d'optimisation avec Python
Résoudre Atcoder ABC169 A-D avec Python
Résoudre ABC036 A ~ C avec Python
Résoudre ABC037 A ~ C avec Python
Résoudre des équations différentielles normales en Python
Quadtree en Python --2
Python en optimisation
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
[Python] DP ABC184D
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
[Python] UnionFind ABC177D
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
ABC 157 D - Résolvez les suggestions d'amis en Python!
Je voulais résoudre ABC159 avec Python