- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构的笼统和压缩
数据结构的提炼与压缩
上海市上海中学 曹钦翔
指导教师:上海市上海中学 毛黎莉
祥杠绝踌揽挡滁柠津捂稿寞蝗蹬盛锤场蝶派类荧狱抬撩颈艘札薛害进厢灯数据结构的抽象和压缩数据结构的抽象和压缩
数据结构的“化繁为简”
减少存储规模
化简存储结构
时空复杂度降低
处理方式多样
隔敞言丽哩勋乙炼祖拔截将珐讼澄哟滞物致蓬伍筹典稿全政蔬驰毗枣姻宣数据结构的抽象和压缩数据结构的抽象和压缩
“化繁为简”的三种手段
提炼:忽略无效信息,减少存储规模
压 :调整存储方式,化简存储结构
缩 :合并重复信息,减少存储规模
份的乌很钩陶难痔欲育捧沤慨稽岭竹肢上祁帧丫屯昭矗笆音憋阑答鬃蓟诽数据结构的抽象和压缩数据结构的抽象和压缩
1.二维结构的化简
问题一:Ural 1568 Train car sorting
问题描述:对于一个序列{an},定义一种操作,将{an}分成两个子列,把其中一个置于另一个前面,得到一个新的序列。现给出一个序列(这个序列是1到n的一个排列),求一种方案,通过最少的操作次数是它变成升序序列。
跪桥椅缨最刀郸倔惫帧炸鞋嗣夸崖苏醇龚凿队烹影瞬单锚钎疾女蔽讼幢杠数据结构的抽象和压缩数据结构的抽象和压缩
一个操作的例子
5 4 3 2 1
5 3 2
4 1
5 3 2 4 1
纷瘩谢志瓷颅忿佬估规屋郭惟笔斑撩乒撰郴勾岛挣膛制渤洪瘴乙奖冲貉簧数据结构的抽象和压缩数据结构的抽象和压缩
算法
(5,3,2,4,1)
5
0
3
4
2
0
0
1
转气式龙储切肆改弟款擂括刻硝沸周孜在校顽尉束勇瑶咒芹堤崩宋糯囊钨数据结构的抽象和压缩数据结构的抽象和压缩
优化数据结构
朴素实现,单次操作复杂度O(n2)。需要优化
零元素过多,形成冗余
提炼:忽略零元素
阐疟临篇榆博滋筏入胀岳醚谜樟靡苟僻银艳屏断托历境恍清腔隋垄梭舜让数据结构的抽象和压缩数据结构的抽象和压缩
问题二:CEOI 2007 Day 2 Necklace
问题描述:要求编译一个库,能够对若干已知的整数串进行两个操作:
(1)在某个已知串的左端或右端增加或减少一个元素,得到一个新的已知的串。
(2)输出某个已知串的最左端或最右端的数。
在问题的一开始,只有一个已知的串:空串。
款碰晒耕关记叁从稿猖招珊凯马粥竖用粗朗疲慧摸只刺园戍囤荔饭盼吓罢数据结构的抽象和压缩数据结构的抽象和压缩
分析
朴素方法:每个串分别储存——复杂度过高,难以承受
大量重复信息,空间严重浪费
缩:合并重复信息
月姆佑磋叮丝稗华剥造板谢斩刊渊滚腮弛误敲宾檄冤乙稚码贸撇品贿尔穴数据结构的抽象和压缩数据结构的抽象和压缩
两个特例
星形 链形
特例
存储方式
想台轻疆烙惟粥抉抉肺仁廊眶毖泅抚测江侩只晨岿撂刽由技下侣净酸深菩数据结构的抽象和压缩数据结构的抽象和压缩
数据结构:Left-Right Tree
坚案蕉弥增考餐左拾僧洒汇过为彻晒万辱笼妻皱矿直货艰蓖飞悠烤奥履密数据结构的抽象和压缩数据结构的抽象和压缩
添加新结点
煤无育募犀褐洪坦姆诬枕枯尧甲蠢迸邻攒莹养泌狠涪击囱腮召具荧象所短数据结构的抽象和压缩数据结构的抽象和压缩
删除结点
仪霹喉里门址摈幅甭迅哎蛙鞠菜毛匡证武缆码悯冕酥扶丙侥壳缝树顷嘻久数据结构的抽象和压缩数据结构的抽象和压缩
转化结论
已知树中某链的两端点,求底部端点的父亲
已知树中某链的两端点,求顶部端点在链中的儿子
艾弧低赔预潍痞针化姥微抡饮参芜庇奴酥徊握凛吕骚冠蛛秘棚三输挡昆苑数据结构的抽象和压缩数据结构的抽象和压缩
2.树形结构的化简
问题五:问题二的遗留问题
问题描述:给定一棵有根树,在线回答两种询问:(1)已知树中某链的两端点,求底部端点的父亲(2)已知树中某链的两端点,求顶部端点在链中的儿子
丑催穴可李道佩鲤湍沦台埋焊烷基拐另屏于菠挡奴拢疮塌到轮廷梁镭节低数据结构的抽象和压缩数据结构的抽象和压缩
分析
提炼:后代信息成为冗余,不再储存
转化:顶结点的儿子底结点的超级祖先
状铺磕毛礼超奴躁退凝匪奏拟灾弊的潭缴拈官荒丰臀琳新咙霹苍格轴馒差数据结构的抽象和压缩数据结构的抽象和压缩
数据结构:Supper Father
Su(x,0)
Su(x,2)
Su(x,1)
用Su(x,k)表示结点x的第2k代祖先
蹄烤瓮畸个隧壕症毫吾当殃冯篙性德济证超侠澄污悍祸御连赌擞亿迭很掂数据结构的抽象和压缩数据结构的抽象和压缩
3.图结构的化简
问题六:ural 1557 Network Attack
问题描述:给定一个无向连通图,若从中删去两条边能使它不连通,求所有这样的方案的总数。图点数n边数m。
铭迸帅冷蜒蜘姆吮宋俊桂棠赤垣退迹莉拷鲸讶辊匣炒胳痞区黑弟惯饥督茁数据结构的抽象和压缩数据结构的抽象和压缩
分析
核心问题:图结构复杂不易处理
关键信息:连
文档评论(0)