最新要闻
- 微头条丨女子乘火车遇麻将专列生意火爆 还能K歌引围观:网友直呼想买站票
- 全球观焦点:三级应急响应启动!寒潮预警升级 降温图又变紫了:局地降超20度
- 天天观天下!盖茨自曝他的主力机是三星Galaxy Z Fold4:李在镕送的
- 全球热文:《卧龙:苍天陨落》中配预告 声优大佬云集、虎牢关战吕布超燃
- 苹果兔年新春大片《过五关》发布!iPhone 14 Pro拍摄国粹京剧
- 焦点消息!最远能跑1200km 长安智电iDD正式发布:一公里不到2毛钱
- 世界动态:3月发售 《生化危机4:重制版》中文配音首曝:艾达王登场
- 世界百事通!能怎样?爱奇艺回应没限制投屏只限制清晰度被喷无耻:律师称确没违法
- 《原神》开发商米哈游上热搜:间接持股企业超百家
- 一度因黑客攻击被迫停服:狼人杀游戏《鹅鸭杀》服务器重新上线
- 天天视点!魅族新专利:可根据坐姿判断是否疲劳驾驶
- 全球焦点!奔驰L3级自动驾驶获批:司机可看书、喝咖啡 事故奔驰负责
- PS“迷你版”Paint.net推5.0正式更新:Win7/8.1系统被放弃
- 央视网络春晚官宣:王冰冰、董宇辉加盟
- 天天快资讯:N95口罩价格大跳水 单价跌破1块钱!专家:是否戴N95口罩看场合
- 【全球新要闻】广东东莞的刮痧板在欧美爆火:有公司年出口量可达700万片
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
世界今日讯!「闲话随笔」势能分析法
「闲话随笔」势能分析法
点击查看目录
目录
- 「闲话随笔」势能分析法
- 简介
- 分析
- 例题
- 二进制计数器
- 单调栈
- Splay
这闲话已经被催了两天了,累死我了。
(资料图片仅供参考)
感谢 joke3579 帮我找到了 Tarjan 的论文。虽然没看懂只截了一下里面的图。
语文考了 82,需要单独给语文老师发作业,很闹心。
今日推歌:盲龙默虎 feat.洛天依 vs 言和。
iKz 老师的《一年一度武斗大赛》系列是不是快要更了?
简介
一种挺神奇的分析时间复杂度的方法。
一个算法/数据结构单次操作的复杂度难以计算时可以用势能分析法。
分析
设第 \(i\) 次操作的时间复杂度为 \(a_i\),显然总复杂度为 \(\sum_{i=1}^{n}a_i\)。
构造一个势能函数 \(\phi(i)\) 表示第 \(i\) 次操作后的势能,设 \(\Delta_{\phi(i)}\) 表示单次的势能变化,即 \(\Delta_{\phi(i)}=\phi(i)-\phi(i-1)\)。
设摊还代价 \(b_i=a_i+\Delta_{\phi(i)}\),则:
\[\sum_{i=1}^{n}a_i=(\sum_{i=1}^{n}a_i+\Delta_{\phi(i)})-\sum_{i=1}^{n}\Delta_{\phi(i)}=\sum_{i=1}^{n}b_i+\phi(0)-\phi(n)\]不知道我在说什么,对不对?看起来啥用没有,对不对?
不对就怪了
实际上我们虽然无法算出具体的 \(a_i\),但是可以用未知数表示出来,这个时候构造一个优秀的势能函数,就可以巧妙地将 \(b_i\) 化为一个数或是求出其上限。
看看例题就都明白了。
例题
二进制计数器
题意:
一个二进制下的计数器,每次累加 \(1\),做 \(n\) 次累加,求操作的次数。
定义一次操作为一位上发生变化,因此每次累加 \(1\) 可能会带有多次操作。
设每次累加会有 \(x\) 位 \(1\) 变为 \(0\),那么 \(a_i=x+1\)(还会有一个 \(0\) 变为 \(1\))。
那么构造势能函数 \(\phi(i)\) 表示累加 \(i\) 次后数字里有多少个一。
显然 \(\Delta_{\phi(i)}=1-x\)。
然后就发生了一件神奇的事:\(b_i=(x-1)+(1-x)=2\)!
然后化简原式得到复杂度 \(2n-\phi(n)\le 2n\)。
单调栈
不会单调栈就来学这个是不是有点过猛了。
显然单调栈不用这么麻烦地分析,但确实可以这么用。
设每次操作会有 \(x\) 个元素弹出,\(1\) 个元素加入,那么 \(a_i=x+1\)。
那么构造势能函数 \(\phi(i)\) 表示当前栈内元素个数。
显然 \(\Delta_{\phi(i)}=1-x\)。
然后就发生了一件神奇的事:\(b_i=(x-1)+(1-x)=2\)!
然后化简原式得到复杂度 \(2n-\phi(n)\le 2n\)。
然后还发生了一件神奇的事:这个过程和上个过程居然没啥区别。
Splay
默认读者已经会 splay 了,不会的话去网上搜 或者等我平衡树学习笔记写完了再看
定义 \(x\) 为一棵 splay 上的一个节点,\(x"\) 为 \(x\) 旋一次后的位置,\(\left|x\right|\) 为以 \(x\) 为根的子树的大小,\(\phi_{j}(x)=\log_{2}\left|x\right|\) 为一次 splay 操作中第 \(j\) 次操作后节点 \(x\) 的势能,\(\Phi_j\) 为一次 splay 操作中第 \(j\) 次操作后整棵树的势能。
然后我们开始分析三种旋转情况的 \(a_i\):
旋上根(\(\text{zig}\)):
可以发现转一次只会有 \(x\) 和 \(y\) 的势能发生变化。
显然 \(\phi_{j}(x)=\phi_{j-1}(y)\)。
\[\begin{aligned}b_{\text{zig}}&=a_j+\Delta_{\Phi_j}\\&=1+\phi_{j}(x)+\phi_{j}(y)-\phi_{j-1}(x)-\phi_{j-1}(y)\\&=1+\phi_{j}(y)-\phi_{j-1}(x)\\\end{aligned}\]三点共线(\(\text{zig-zig}\)):
可以发现转一次只会有 \(x,y\) 和 \(z\) 的势能发生变化。
显然 \(\phi_{j}(x)=\phi_{j-1}(z)\)。
\[\begin{aligned}b_{\text{zig-zig}}&=a_j+\Delta_{\Phi_j}\\&=2+\phi_{j}(x)+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)-\phi_{j-1}(z)\\&=2+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)\\\end{aligned}\]注意到这个 \(2\) 长得很难看,尝试把它去掉。
不难发现 \(\left|x\right|+\left|z"\right|+1=\left|x"\right|\),因此 \(\left|x"\right|^2>4\cdot\left|x\right|\cdot\left|z"\right|\),那么:
\[\phi_{j-1}(x)+\phi_{j}(z)-2\phi_{j}(x)=\log_2\frac{\left|x\right|\cdot\left|z"\right|}{\left|x"\right|^2}\le\log_2\frac{1}{4}=-2\]然后代入一下原式:
\[\begin{aligned}b_{\text{zig-zig}}&=2+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)\\&=2\phi_{j}(x)-\phi_{j-1}(x)-\phi_{j}(z)+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)\\&=2\phi_{j}(x)-2\phi_{j-1}(x)+\phi_{j}(y)-\phi_{j-1}(y)\\&\le3(\phi_{j}(x)-\phi_{j-1}(x))\end{aligned}\]这样就求出了它的上限。
三点不共线(\(\text{zig-zag}\)):
比较像上面的式子。
\[\begin{aligned}b_{\text{zig-zig}}&=a_j+\Delta_{\Phi_j}\\&=2+\phi_{j}(x)+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)-\phi_{j-1}(z)\\&=2+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)\\\end{aligned}\]然后由于 \(\left|y"\right|+\left|z"\right|+1=\left|x"\right|\):
\[\phi_{j}(y)+\phi_{j}(z)-2\phi_{j}(x)=\log_2\frac{\left|y"\right|\cdot\left|z"\right|}{\left|x"\right|^2}\le\log_2\frac{1}{4}=-2\]然后代入原式:
\[\begin{aligned}b_{\text{zig-zig}}&=2+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)\\&=2\phi_{j}(x)-\phi_{j}(y)-\phi_{j}(z)+\phi_{j}(y)+\phi_{j}(z)-\phi_{j-1}(x)-\phi_{j-1}(y)\\&=2\phi_{j}(x)-\phi_{j-1}(x)-\phi_{j-1}(y)\\&\le2(\phi_{j}(x)-\phi_{j-1}(x))\end{aligned}\]
现在我们把三种旋转的摊还代价算出来了,问题变成了如何算出一次 splay 操作的摊还代价。
显然一次 splay 操作会进行若干次 \(\text{zig-zig}\), \(\text{zig-zag}\) 和至多一次 \(\text{zig}\),那么:
\[b_i\le\sum_{i=1}^{k}3(\phi_{j}(x)-\phi_{j-1}(x))=3(\phi_{k}(x)-\phi_{0}(x))=O(\log_2\frac{\left|x"\right|}{\left|x\right|})\le O(\log_2n)\]然后由于 \(0\le\Phi_i\le n\log_2n\),\(-n\log_2n\le\Phi_0-\Phi_n\le n\log_2n\)。
所以总复杂度为:
\[\sum_{i=1}^{m}a_i=\sum_{i=1}^{m}b_i+\Phi_0-\Phi_n\le O(m\log_2n)+O(n\log_2n)=O((m+n)\log_2n)\]\[\Huge\mathfrak{The\ End}\]世界今日讯!「闲话随笔」势能分析法
全球短讯!MQ——如何选择消息队列
微头条丨女子乘火车遇麻将专列生意火爆 还能K歌引围观:网友直呼想买站票
全球观焦点:三级应急响应启动!寒潮预警升级 降温图又变紫了:局地降超20度
天天观天下!盖茨自曝他的主力机是三星Galaxy Z Fold4:李在镕送的
全球热文:《卧龙:苍天陨落》中配预告 声优大佬云集、虎牢关战吕布超燃
学习笔记——Mybatis中缓存机制
播报:区块链特辑——solidity语言基础(五)
热文:Python实现希尔排序、快速排序、归并排序
苹果兔年新春大片《过五关》发布!iPhone 14 Pro拍摄国粹京剧
天天看点:Matplotlib学习笔记1 - 上手制作一些图表吧!
焦点消息!最远能跑1200km 长安智电iDD正式发布:一公里不到2毛钱
世界动态:3月发售 《生化危机4:重制版》中文配音首曝:艾达王登场
世界百事通!能怎样?爱奇艺回应没限制投屏只限制清晰度被喷无耻:律师称确没违法
要闻:uwsgi 快速入门
焦点速递!学习笔记——Mybatis动态SQL
《原神》开发商米哈游上热搜:间接持股企业超百家
一度因黑客攻击被迫停服:狼人杀游戏《鹅鸭杀》服务器重新上线
天天视点!魅族新专利:可根据坐姿判断是否疲劳驾驶
全球焦点!奔驰L3级自动驾驶获批:司机可看书、喝咖啡 事故奔驰负责
PS“迷你版”Paint.net推5.0正式更新:Win7/8.1系统被放弃
央视网络春晚官宣:王冰冰、董宇辉加盟
天天快资讯:N95口罩价格大跳水 单价跌破1块钱!专家:是否戴N95口罩看场合
来自后端的愤怒!
【全球新要闻】广东东莞的刮痧板在欧美爆火:有公司年出口量可达700万片
限制投屏清晰度后:爱奇艺TV版新功能允许远程为父母付款
世界热资讯!性能领先24核i9多达24% AMD锐龙7000 3D缓存版闹乌龙:情人节没戏
全球快资讯丨为什么手机的内存都到了16GB 电脑才普及8GB呢?
秦始皇兵马俑考古重大新发现!6000多件宝物、一号坑甬道被人挖开过
腾讯E证通实现人脸核验(.Net6)
天天短讯!排查+解决 Java 内存泄漏,最基本的方法,你必须学会!
环球热推荐:看这篇就够了丨基于Calcite框架的SQL语法扩展探索
今日讯!都想来分一杯羹,低代码到底服务谁?
04-Sed操作参数
看点:799元 ROG龙鳞ACE Aimlab鼠标上市:仅重54g
2030年前我国将送人上月球 新一代载人火箭三级发动机点火成功
天天快讯:《王者荣耀》兔年限定皮肤英雄公布:马克、瑶妹喜提新装
【报资讯】1300多种首次公开!中国空间站居然种了这么多“菜”
中国第一商贩:“傻子瓜子”创始人年广九逝世 享年84岁
全球速递!【Python爬虫实战项目】Python爬虫批量下载去哪儿网站旅游数据保存本地
世界热门:辛苦加班了一年,为何年终奖比同级同事少?
天天视点!Nginx 高级篇
天天热推荐:python中argparse模块的用法
【天天快播报】使用python自动发送图片给微信好友
焦点日报:美国上万架航班停飞!初步调查:因一个数据库文件损坏
环球观察:小米13 Pro用上安卓最高端屏幕 雷军:价格最贵
4000吨巨型“充电宝”广东下水:每天可发2.4万度电
每日信息:高德地图上线一键报平安功能 路程家人一看便知
天天最资讯丨2022年新生儿爆款名字出炉上热搜:男/女孩这些名字土爆了?
环球热文:【验证码逆向专栏】某验二代滑块验证码逆向分析
开源动物行为分析实验箱(斯金纳箱)特色解析及试用条款
环球信息:爱奇艺APP投屏加钱 上海消保委点名批评:不合理、不厚道
特斯拉降价效果显著!友商会不会跟进降价?
焦点消息!阿凡达2不适合国人?国产科幻大片《流浪地球2》迎战 还有《满江红》等一次看爽
12306出现故障无法查车次 客服回应:网络问题 建议多次刷新
环球焦点!羡慕吗?微软宣布给员工“无限休假”福利:不再固定天数
C#、TS和Dart对比4.1:类型概述
全球速递!虚拟串口及其在串口转以太网中的应用
别催了,别催了,这篇文章我一次性把Shell的内容说完
环球观点:AMD RDNA3显卡架构底层细节公开!606页 应有尽有
前沿资讯!微信隐藏功能无了!群空间助手小程序宣布3月下线:号称永久保存
世界滚动:腾讯优酷后!爱奇艺限制投屏 会员只能看480P:专家发声 用户只能接受
环球快看点丨SUV比亚迪卖爆!榜一大哥月销7万+、一代神车没落
《黑豹2》女主演利蒂西娅·赖特:续集已在计划中
头条:疑似零跑C11路边停车起火 车尾疯狂往外喷火
男子开豪车带马狗羊回家过年 它们都是自己的家人:画面让网友难受
公交司机边开车边抠脚引乘客担忧 官方回应:会研究处理
焦点短讯!这些是最热门的机器学习方法!
【播资讯】通过事件总线EventBus/AsyncEventBus进行JAVA模块解耦 (史上最全)
内存、SSD价格雪崩 韩国芯片双雄终于顶不住了?
又一日系品牌拥抱比亚迪 铃木EVX概念车首发:用上刀片电池
全球视点!美国最大私人地主 大量买地引质疑!比尔盖茨回应:只为提高产量
国产家轿又一“黑马”诞生 长安逸达首发亮相
原长城汽车总裁王凤英将出任小鹏CEO 接替何小鹏?内部回应
围棋哪个国家最强?围棋哪个颜色先下?
都挺好苏明成知道自己不是亲生的是第几集?都挺好的结局是什么?
魂来枫林青的下一句是什么?魂来枫林青是什么意思?
李宁标志刺绣是真的吗?李宁标志设计含义
美的净水器好不好?净水器哪个牌子质量好性价比高?
ios7输入法怎么设置成搜狗?ios7输入法打不出汉字怎么办?
怎么修改系统启动项?修改系统启动项的方法有哪些?
新资讯:MySQL间隙锁、行锁的读写阻塞实验
win8如何找到硬件驱动程序?win8怎么进入安全模式?
港利通手机怎么样?港利通手机怎么恢复出厂设置密码?
当前播报:推特广告收入下跌严重:考虑出售15亿用户名创收
今日看点:春节正常发货:仁和N95灭菌级口罩25片15.9元发车
【全球独家】跟上Windows本步伐!苹果正开发触摸屏Mac笔记本:最早2025年发布
秒变战神!杰士邦延时避孕套大促:立减200元 不到20到手
全球新动态:文件出台!车险价格最高可再降23% 开车越稳越便宜
天天报道:TapTap 算法平台的 Serverless 探索之路
我用AI去讨债:一顿操作猛如虎 3000要回350
环球观察:不止投屏缩水 爱奇艺蓝光码率仅蓝光碟1/13 1080P也糊
4999元限量发售!雷军:小米13定制色水泥灰卖的最好
焦点关注:育碧《怒海战记》再度延期
网速比5G提升100倍 2023年我国将全面推进6G技术研发
环球热议:读编程与类型系统笔记05_函数类型
天天资讯:关于 Serverless 应用架构对企业价值的一些思考
焦点热文:男子高速撞鸟 鸟腿成三叉戟立标 丰田秒变“玛莎拉蒂”
世界关注:解除屏蔽!微信已可正常跳转抖音链接
环球最资讯丨造车新势力第一 广汽埃安宣布将涨价:最高涨6000元