Div1 Easy PreviousOccurrence
愚直に探索するだけ。
ただ、defaultValue = 1 のときは、0, 1, 1, 1,...となり、2以上の数にならないので気を付ける。
良い方法が思いつかずとりあえず書いてみた後、適当な数で探索してみたところ、Pythonでも間に合いそうだったので提出したらACでした。
本当は全探索すべきなんだけど、Pythonではかなり時間がかかりそうだったので適当に切り上げました。
一応、ACしたコードを。
class PreviousOccurrence():
def findValue(self, defaultValue, query):
if query==0:
return 0
if defaultValue==1:
if query==1:
return 1
else:
return -1
NOW=0
LAST=[-1]*(5000000)
ANS=0
while True:
if LAST[NOW]==-1:
NEXT=defaultValue
LAST[NOW]=ANS
ANS+=1
else:
NEXT=ANS-LAST[NOW]
LAST[NOW]=ANS
ANS+=1
NOW=NEXT
if NOW==query:
return ANS
break
0 件のコメント:
コメントを投稿