[OI - 名詞] 在線 離線 強制在線


博客背景

OI/ACM中,在做區間查詢,區間修改等問題的時候,經常會聽到各位大佬說到“離線”、“在線”等令我一臉懵逼的名詞,所以決定要搞懂是什么意思

博客正文

一.簡單的理解

在線離線可以簡單的理解為對於所有的操作是否需要讀入完畢

二.標准理解和要求

在線的要求是可以不用先知道所有的操作(類似詢問、修改),邊讀入邊執行,類似“走一步,做一步”的思想。

離線則與在線相反,要求必須知道所有的操作,類似"記錄所有步,回頭再做”的思想,一般用Query[ ]記錄所有操作。

三.常見的算法

常見的在線算法:帶有“可持久化”字樣的(主席樹、可持久化線段樹、可持久化字典樹等等),其實正常寫題時基本上都是在線的思路……

常見的離線算法:整體二分、CDQ分治、莫隊算法

四.應用

對於正常的題目來講,兩種算法其實都可以使用,經典的題目如:動態第K大問題(ZOJ2112),解法有樹套樹(在線)和整體二分/CDQ分治(離線),但是區別在於:

在線算法的思路相對簡單,而代碼量大(如某些毒瘤題),容易爆棧,賽場上及其考驗心態

離線算法的思路相對復雜,而代碼量小,建議選手多采用(畢竟代碼越多,DEBUG越困難)

五.強制在線

對於一些不正常的題目(強制在線),只能老老實實碼數據結構了

強制在線的例子如:當前讀入的數據需要xor上一次的結果、交互式等


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM