#39528: 避免 TLE 的思路


ofptw (OFPTW)

學校 : 不指定學校
編號 : 264796
來源 : [1.164.111.52]
最後登入時間 :
2024-03-30 18:14:35
a248. 新手訓練 ~ 陣列應用 -- 新手訓練系列 ~ 2 | From: [1.164.99.221] | 發表日期 : 2024-03-03 12:04

做除法人腦最直觀的方式是10進位長除法,

一次左移一個數字,

如 :

迴圈 ( 判斷 x 仍為正數 )

      算出 x / y 的整數部分, 放到結果陣列

      算出 x / y  的餘數, 把 x的值改成餘數乘以10

419  / 11

419 = 11 x 38 + 1   --> 商=38, 下次x變成1 x 10 = 10

10 = 11 x 0 + 10   --> 商=0, 下次x變成10 x 10 = 100

但事實上, 電腦算10進位跟算100,1000, 1000進位是一樣快的,

用更高的進位數,

可以大幅減少迴圈的時間(比方說一次進位1000000, 迴圈執行次數會是10的六分之一),

避免TLE

 

 
ZeroJudge Forum