国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[XJB研究] [分塊] 關于分塊時間復雜度的證明

2019-11-08 20:03:33
字體:
來源:轉載
供稿:網友

如果你知道分塊的時間復雜度是O(n√),請忽略這篇博文。 如果你并不關心是怎么證明出來的,請忽略這篇博文。 如果你是神犇,請務必忽略這篇博文。 以下證明又是在數學課上瞎想,如果有誤歡迎提出…… (數學老師我錯了......) 1、規定符號 n:序列的長度; S:將這個序列分成S塊; C:分成的每個塊內有C個元素; x:查詢或修改時,需要操作的整塊數; y:查詢或修改時,需要操作的零散區間中元素個數; L:查詢或修改時,操作序列的長度。 通過符號規定,可以看出一定有:SC=n,x≤S,y<2C。 2、目的 通過分塊,統一維護塊內元素,查詢時可以快速取出整塊內答案,再與零散區間合并,達到降低時間復雜度的目的。(這種元素需滿足區間加法維護的性質)。 因此,需要最小化修改與查詢次數。即最小化x+y的值。 3、證明 ① 當最差情況下時,操作的區間為[2,n?1],此時需要查詢S?2個塊和2C?2個元素,即x=S?2,y=2C?2x+y=S?2+2C?2=S+2C?4。忽略常數,得x+y=S+C。 因SC=n,則C=nS。 代入,得 x+y=S+nS≥2?S?nS?????√=2n√ 當且僅當S=nS,即S=n√時,等號成立。 所以在最壞時,時間復雜度為O(n√)。常數不超過3。 ② 在一般情況下時,可以得出L=xC+y。 移項,得x=L?yC。 因0<L≤n,0<y<2C,則0<L?y<n?2C。 因C>0,則L?yC<n?2CC=SC?2CC=S?2<Sx+y<S+2C,忽略常數,x+y<S+C。 因SC=nS+C≥2SC???√=2n√。 當且僅當S=C,即S=C=n√時,等號成立。 此時x+y<2n√。 綜上,分塊的時間復雜度為O(n√),常數不超過3。證畢。 分塊中,S與C的取值可以任意,只是當S=C=n√時,時間復雜度最優。在有些JOI題目中(如[BZOJ4241] 歷史研究)使用的SC不是最優的,但是也可以A掉這種題。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 周宁县| 宁德市| 璧山县| 西青区| 勃利县| 宜黄县| 鸡西市| 犍为县| 谷城县| 阿鲁科尔沁旗| 边坝县| 溆浦县| 南郑县| 吉木萨尔县| 芦溪县| 香港 | 绿春县| 息烽县| 屯门区| 西昌市| 江陵县| 高邮市| 台前县| 河曲县| 邛崃市| 金门县| 长阳| 商水县| 基隆市| 茌平县| 江门市| 中山市| 甘孜| 丰台区| 澎湖县| 广安市| 高清| 汉川市| 宾川县| 辽阳市| 府谷县|