#16807: [python]請各位大大幫忙TLE(80%)


bigppman89@gmail.com (電工膠布_python啦~)

學校 : 臺中市立西苑高級中學
編號 : 91162
來源 : [61.218.122.12]
最後登入時間 :
2019-12-04 15:23:11

lst=[]
str1=input()
lst1=str1.split(" ")

N=int(lst1[0])   #玩家
M=int(lst1[1])-1   #第M個人
K=int(lst1[2])   #擊殺量

#增添玩家
lst=list(range(1,N+1))

K=N-K   #玩家-擊殺量=倖存者
i=0

#遊戲開始
while N > K :   #玩家>因該活著的人數
    if i+M < N:
        i=i+M
        del lst[i]
        N-=1
    else:
        i=i-N   #從頭數

if i < N :
    result=lst[i]
else:
    result=lst[0]

print (result)#打出結果

我以為我已經夠省的說

#16808: Re:[python]請各位大大幫忙TLE(80%)


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.60.223]
最後登入時間 :
2025-05-23 17:43:44

lst=[]
str1=input()
lst1=str1.split(" ")

N=int(lst1[0])   #玩家
M=int(lst1[1])-1   #第M個人
K=int(lst1[2])   #擊殺量

#增添玩家
lst=list(range(1,N+1))

K=N-K   #玩家-擊殺量=倖存者
i=0

#遊戲開始
while N > K :   #玩家>因該活著的人數
    if i+M < N:
        i=i+M
        del lst[i]
        N-=1
    else:
        i=i-N   #從頭數

if i < N :
    result=lst[i]
else:
    result=lst[0]

print (result)#打出結果

我以為我已經夠省的說

我覺得您可以參考解題報告
那雖然是寫給C++,但Python道理也一樣
不能單純模擬,找一下規律

#20585: Re:[python]請各位大大幫忙TLE(80%)


TCFSH69 (TCFSH)

學校 : 國立臺中第一高級中學
編號 : 81602
來源 : [140.116.191.189]
最後登入時間 :
2022-09-01 23:15:51

import sys

while 1:

try:

line = sys.stdin.readline()

N , M , K = map(int,line.split())

index = 0

box = [i for i in range(1,N+1)]

for i in range(K):

index = (index+M-1) % N

N -= 1

box.remove(box[index])

index = index % N

print(box[index])

except:

break

 

我比你還省還是照樣TLE QQ




#30563: Re: [python]請各位大大幫忙TLE(80%)


jefffangedu (jeffjcfangedu)

學校 : 國立臺灣師範大學附屬高級中學
編號 : 110728
來源 : [114.38.39.122]
最後登入時間 :
2025-07-15 21:56:50

import sys

while 1:

try:

line = sys.stdin.readline()

N , M , K = map(int,line.split())

index = 0

box = [i for i in range(1,N+1)]

for i in range(K):

index = (index+M-1) % N

N -= 1

box.remove(box[index])

index = index % N

print(box[index])

except:

break

 

我比你還省還是照樣TLE QQ





box.remove(box[index])
改成
box.pop(index)
就會過了,試試看