- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最新《算法艺术与信息学竞赛》标准课件.ppt
分析 可以用矩阵来保存结果 C[j,k]表示从j到k的关键码组成的最优排序二叉树 Root[j,k]记录这棵排序二叉树的根 * jjjkk 分析 考虑三个结点的情形 最优值放在C[B,D]中,根放在root[B,D]中 * jjjkk 分析 类似地,更新所有C[j-2,j]和root[j-2,j] * jjjkk 分析 四个结点的情形(如A-D) * jjjkk 分析 最终计算结果为 * jjjkk 分析 可以利用root矩阵递归地构造出最优树 * jjjkk 分析 时间复杂度:计算每个C[i,j]和root[i,j]需要枚举根结点,故为O(n3) 空间复杂度:需要两个n*n矩阵,O(n2) * jjjkk 三、最长上升子序列 最长上升子序列问题(LIS)给一个序列,求它的一个递增子序列,使它的元素个数尽量多。例如序列1,6,2,5,4,7的最长上升子序列是1,2,5,7(还有其他的,这里略去) * jjjkk 分析 定义d[i]是从第1个元素到第i个元素为止的最长子序列长度, 则状态转移方程为 直接使用这个方程得到的是O(n2)算法 下面把它优化到O(nlogn) * jjjkk 状态的组织 d值相同的a值只需要保留最小的, 因此用数组g[i]表示d值为i的数的a最小值, 显然 g[1]=g[2]=…=g[k] 计算d[i]: 需要在g中找到大于等于a[i]的第一个数j, 则d[i]=j 更新g: 由于g[j]a[i], 需要更新g[j]=a[i] * jjjkk 代码 使用STL的lower_bound可以直接求出比a[i]大的第一个数, 用二分查找实现, 每次转移时间O(logn), 总时间O(nlogn) fill(g,?g?+?n,?infinity);for(int?i?=?0;?i??n;?i++){ int?j?=?lower_bound(g,?g?+?n,?a[i])?-?g;??d[i]?=?j?+?1;??g[j]?=?a[i];} * jjjkk 变形1: 航线问题 有两行点, 每行n个. 第一行点和第二行点是一一对应的, 有线连接, 如下图所示 选择尽量多的线, 两两不交叉 * jjjkk 分析 设与第1行第i个点对应的是第2行第f[i]个点 假设ij, 两条线(i, f[i])和(j, f[j])的充要条件是f[i]f[j], 因此问题变成了 求f的最长上升子序列 时间复杂度为O(nlogn) * jjjkk 变形2: 两排列的LCS 给1~n的两个排列p1, p2 求p1和p2的最长公共子序列 例: 1 5 3 2 4 ? 5 3 4 2 1 * jjjkk 分析 算法一: 直接套用LCS算法, 时间O(n2) 算法二: 注意到把两个排列做相同的置换, LCS不变, 可以先把p1排列为1,2,3…,n 1 5 3 2 4 ? 1 2 3 4 5 即映射5?2, 2?4, 4?5, p2作同样置换 5 3 4 2 1 ? 2 3 5 4 1 与1,2,3..n的LCS显然是最长上升子序列, 时间降为O(nlogn) * jjjkk 推广: DAG上的最短路 “上升”依赖于序关系=, 它具有一般性 DAG(有向无环图)的最长路径问题: 把有向边看成偏序关系, 则本题的算法一仍然适用, 时间复杂度为O(n2). 如果图的边数m比较, 可进一步优化到O(m), 因为每条边恰好考虑一次(用邻接表或前向星, 而不是邻接矩阵) 算法二不再适用! 因为d值相同的a不一定可以两两相互比较, 不一定存在最小值. * jjjkk 四、最优三角剖分 给一个n个顶点的凸多边形, 有很多方法对它进行三角剖分(polygon triangulation) 每个三角形有一个权计算公式(如周长, 顶点权和), 求总权最小(大)的三角剖分方案 * jjjkk kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg kkkkk ggggg 《算法艺术与信息学竞赛》标准课件 动态规划(一): 经典问题 刘汝佳 * jjjkk 目录 一、最长公共子序列O(mn) 二、最优排序二叉树O(n3) 三、最长上升子序列O(nlogn) 四、最优三角剖分O(n3) 五、最大m子段和O(mn) 六、0-1背包问题O(min{nc, 2n, n1.44n}) * jjjkk 一、最长公共子序列 Longest Common Sub
您可能关注的文档
- 最新XX酒店新员工 培训教程.ppt
- 最新[ PowerPoint Template ].ppt
- 最新~校园 0 霸凌~『作战计画二部曲-遇到霸凌怎麽办』 .ppt
- 最新Электронный бизнес:цифры, факты, тенденции电子商务:....ppt
- 最新“3G在中国”投资机会分析电信行业2006年中期投资策略.ppt
- 最新“三严三实”专题教育 专题研学活动.ppt
- 最新“三证合一”登记制度.ppt
- 最新“中国口腔医疗服务能力研究”督导和数据资料处理.ppt
- 最新“主题阅读”活动模式的探究 --以广西机电职业技术学院图....ppt
- 最新“任务驱动”教学 法在信息技术课堂 中的运用.ppt
最近下载
- [吉林]2024年吉林大学招聘专业技术人员笔试上岸试题历年高频考点难、易错点附带答案详解.docx
- 23年秋七年级劳动技术 教案第一单元- 传统工艺制作雕刻橡皮印章 教学设计.docx VIP
- 建筑施工技术课程标准[建工].doc
- 2022年质量控制计划与记录(机动车检测).docx
- NB∕T 10341.4-2023 水电工程启闭机设计规范 第4部分:液压启闭机设计规范(2-1).pdf
- History-of-the-USA.ppt
- 弧形钢桁架结构拼装施工方案.docx
- SolidWorks-全套培训教程PPT.ppt
- 新能源分公司工程建设考核管理制度.doc
- 5.17 天然气水合物.pdf
文档评论(0)