在线&离线
在线和离线可以简单的理解为对于所有的操作是否需要读入完毕。
在线: 询问还没有结束就输出回答,即边问边运行,问一句答一句
如树套树,且带有“可持久化”的算法(主席树(可持久化线段树))
离线: 在所有的询问都输入完毕后进行运算,再一起输出所有答案
如莫队算法(需要对询问进行整体排序以达到提速的目的)
特点:
在线算法的思路相对简单,但代码量大(如某些毒瘤题),容易爆栈,赛场上及其考验心态
离线算法的思路相对复杂,但代码量小,建议采用(毕竟代码越多,debug越困难)
离线
即将询问不按照询问给出顺序,而是先记录每个询问出现的位置,再将询问重新排序,按照另外一种顺序处理询问的答案,然后再按照原来记录的询问的位置去输出答案
评测机看到程序不知道是离线,这也是大多题目可以离线询问
强制在线
两种:
- 交互题
- 询问加密:使用询问加密(每个询问是用上个询问答案异或之类操作,即程序未计算出上一个询问答案/算错,就无法获得下一个询问到底询问的是什么)
强制在线常见于各种DS题目中,每个询问是输入的值异或一个答案
浙公网安备 33010602011771号