Professional Documents
Culture Documents
5 杨沐《浅析信息学中的"分"与"合"》
5 杨沐《浅析信息学中的"分"与"合"》
”
福建省福州第三中学
杨沐
引言
分 合
“
分”的思 想是 “
合”的 思想与“
将一个 难以直接 分” 相对,是将 一
解决的 大问题, 些零 散的小问题 的
转化成 一些规模 解决 合并成一个 大
较小或 限制某些 问题 ,从而取得 整
条件的 子问题来 个问 题的解决。
思考, 以求将问
题解决 。
引言
运用“分”与“ 合”思想方 法解题的精 髓
在于通过在“分 ”与“合”
[ 例一 ] 牛奶模版 二分之间的转化 ,
找出解决问题的
N,K 限制下最优 化问题→关键,从而N,K,Len解决问题。
限制下存在 性
“分治法”是运
问题 用“分”与 “合”思想 方
[ 例二 ] 树的重建 化归
法解题的重要应 用,此外, “分”与“ 合
规模为 n 的问题 →规模为
”的思想方法还 有更多、更 n-1 的问题
广泛的应用 。
[ 例三 ] 最优序列
[ 例三 ] 最优 序列
给定一 个长度为 N 的正整数序 列。
求一个 子序列,使 得原序列中 任意长度 为
M 的子串 中被选出的 元素不超过 K 个。
要求选 出的元素之 和最大。
数据范 围:
1≤N≤1000
1≤K , M≤100
[ 例三 ] 最优 序列
输入数 据:
N=10 , M=4 , K=2
{7 , 3 , 4 , 8 , 2 , 6 , 5 , 7 , 4 ,
8}
输出答 案:
36
{7 , 3, 4, 8, 2, 6, 5, 7, 4,
8}
[ 例三 ] 最优 序列 —— 分析
动态规划 超时
O(2M
N)
100
×1000)
!
线段树? 无从入手
怎么办? “ 分”
[ 例三 ] 最优序 列— —“ 分”繁
为简
1≤N≤1000
1≤M≤100
[ 例三 ] 最优序 列— —“ 分”繁
为简
对于这 个子问题, 由于 K 做了限制,我 们
可以用 动态规划来 解决这个问 题。
子问题 原问题
是否可以通过求解 K 次的子问题
从而解决原题呢 ?
[ 例三 ] 最优序 列— —进 一步分
析
命题
原问题 的解 集等价 于由 K 组互不 相交的 子问 题
的解组 成的 解集。
引理一
……
1 2 3 n
1’ 2’ 3’
……
n’
T
[ 例三 ] 最优序 列— —整 体分析
构图完成之后,网 络中的每个 单位流量 表
示一个 子问题的解 ,因此,我 们只需要 在
网络中 寻找 K 次最大费用增广 路即可得 到
答案。
分 合
“ 分”的 思想帮助我 们迅速地切入 问题
核心, 但若过分细 化则会使问 题太过凌 乱
,失去 求解的方向 统一
;而“合” 的思想则 以
线串珠 ,使各种纷 杂无序的问
善于题具有了 整
归纳总结
分中有合,合中
体性。
有 勇于创新
分
谢 谢
总结:“分”与“合”虽然对立,却没有明显的分
界。一道问题若使用“分”的方法,则必然有“合
”的操作,正所谓“分中有合,合中有分”,这两
者相互对立,各有优势,却又相互补充,“分”的
思想帮助我们迅速地切入问题核心,但若过分细化
则会使问题太过凌乱,失去求解的方向;而“合”
的思想则以线串珠,使各种纷杂无序的问题具有了
整体性,这正体现了两者之间的辨证关系。
运用“分”与“合”的思想,对于不同的题目需要
不同的分析,其精髓就在于“转化”。无论是“分
”还是“合”都是朝着将问题转化为更加便于思考
的方向前进,而在这路途中,又需要我们善于归纳
总结。只有将已有的知识与“分合”思想有机地结
合起来,同时勇于创新,不断积累经验,我们才能
从千变万化的题目中找寻出本质,从而更快更有效
地解决实际问题。
小结
转化目
标
网 整体 部分
络 动态规
流 划
! 贪心
线段树 无法 解决该 题的原 因
因为原 问题是要求 对于任意长 度为 M 的
区间, 都限制了取 数不超过 K 个。而这 些
区间有 互相有交, 这使得线段 树很难准 确
的表示 一个状态并 进行处理。
更重要 的是,线段 树只是一个 用来提升 算
法效率 的辅助工具 ,若要使用 线段树, 则
必须先 提出一个可 行的算法。 但对于这 题
我们很 难想出一个 可以使用线 段树的算 法
。
动态规 划的 解法
将连续 M 位的 被选状 态 (0,1) 压缩 成 M 位二 进
制数表 示 ,DP[i,j] 表示 [1,i] 区间 , 最后 M 位状 态
为 j 时的最 优解 , 由于 满足无 后效 性和最 优子 结
构性质 , 可以 使用动 态规 划解决 , 转移方 程如下
: m −1
dp[i, j ] = max(dp[i − 1,2 + j / 2], dp[i − 1, j / 2]) + ( jand1)value[i]