贪心分治.docx
- 文档编号:24515072
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:44
- 大小:92.62KB
贪心分治.docx
《贪心分治.docx》由会员分享,可在线阅读,更多相关《贪心分治.docx(44页珍藏版)》请在冰豆网上搜索。
贪心分治
A3-贪心、分治学习小结
江苏省连云港市赣榆高级中学仲晨
myheimu@
"Myheimu'sBlog"
关键词:
【JSOI2005-2006第一轮函授函授作业A组第3次贪心、分治学习小结】
文件名:
A3-贪心、分治.doc最后修改时间:
2005年6月3日
文件大小:
318.00KB共38页,合计26584字符
目录
按Ctrl+鼠标单击前往
A3-贪心、分治学习小结1
一、作业要求2
二、贪心总论3
三、贪心策略探究7
<一>各色的贪心策略7
<二>贪心优化/启发式算法14
<三>图论中的贪心16
四、分治思想总论,分治与递推、递归22
五、经典题题解33
一、作业要求
贪心法、分治法
一、说明
本月的函授主要以《全国青少年信息学奥林匹克联赛培训教材(中学高级本)》的第三章、第四章为主,同时结合《全国青少年信息学奥林匹克联赛培训习题与解答(中学高级本)》的第三章、第四章的例题,要求营员认真、仔细地学习这些内容,不断总结、深入思考这些经典试题,为后面的竞赛及选拔打下良好的基础。
二、思考如下几个问题
1、请结合1-2个题目谈谈贪心法的优点是什么?
缺点是什么?
2、在找到一个问题的贪心策略后重要的是如何证明你的贪心算法的正确性?
在学习的过程中请注意体会这一点。
3、如果不能严格证明你所采用的贪心策略的正确性,那么采用这种贪心算法编写的程序要尽可能地找各种可能性数据进行测试,以发现反例及时进行修补、重新考虑贪心策略、甚至改用其它算法求解!
请结合1个题目谈谈这个问题。
4、分而治之的思想是一种重要的解题思路!
它能把看似复杂和规模很大的问题,用清晰的思路描述出来和求解。
请结合《习题》31页的4.2地毯填补问题体会这一点。
5、分治与递推、递归有什么关系?
三、作业
结合以上思考题,从《高级本》或《高级本习题》中分别选择一道贪心法和分治法的题目,写一个详细的解题报告!
必须是自己的东西,在6月3日之前上传给我。
四、另外,提供本次USCAOOPEN铜组和银组的比赛题目给大家自己做。
过一段时间,我会把数据公布在网上,给大家自己测试。
二、贪心总论
首先,总结一下什么是贪心:
笔者认为,所谓贪心算法,就是对于一个初始状态,经过多次转化转化为某个状态,每一次转化都遵循一个特定的函数(即:
贪心策略),保证整个过程最终结果和每一步都是某方面的最优解。
根据以上一句理解,贪心算法有这样几个特点,并与其他算法有着联系:
÷
1.贪心可以将一个问题变为一个相似的、但规模更小的子问题,而且每一步都是当前看似最佳的选择。
这种思想也就是分治,或者说:
分治是贪心的基础。
这种选择依赖于已做出的选择,但不依赖于未做出的选择。
也就是说它没有后效性。
2.运用贪心策略解决的问题在程序的运行过程中无回溯过程。
这一点决定了贪心算法一般是线性速度,即
,所以贪心算法一般速度极快,不走弯路。
3.运用贪心策略在每一次转化时都取得了最优解,因此,它具有局部最优解(即最优子结构)。
但能够保证局部最优解的动态规划算法和广度优先搜索(BFS)却和贪心不同:
贪心的每一次操作都对结果产生直接影响,而动规则不是。
打个比方:
贪心是一条路走到底,动规是体育比赛中谁赢谁参加更高一级比赛。
在时间复杂度上,贪心一般是
,而动规一般是
;空间上贪心一般只需要一个存储单元,
,而动规一般是
(有时可以优化为
)。
当然,并不是贪心优于动规,动规主要运用于二维或三维问题,而贪心一般是一维问题,所以动规远比贪心复杂的多。
但话又说会来了,动规=贪心+递推,贪心又是动规理论基础。
我上网时看到这样的事:
“HalBurch在1999年春天通过分析得出了一个惊人的发现,实际上只存在16种竞赛试题类型。
而在IOI中,前几种就构成了约80%的问题。
贪心算法就是这“前几种”之一。
”
可见贪心法的重要性!
贪心算法所作的选择可以依赖于以往所作过的选择,但决不依赖于将来的选择,也不依赖于子问题的解,这使得算法在编码和执行的过程中都有着一定的速度优势。
如果一个问题可以同时用几种方法解决,贪心算法应该是最好的选择之一。
笔者参加竞赛或作题目时,一般是个人的经验来判断是否使用贪心算法、何时该使用贪心算法。
因为贪心算法并不是对所有的问题都能得到整体最优解或最理想的近似解,与回溯法等通法比较,它的适用区域相对狭窄许多,因此正确的判断它的应用时机十分重要。
总之,贪心算法并不深奥(虽说其贪心策略证明不是太容易),却可以解决许多看似深奥的问题,高级本上就有很多例子。
同样,贪心算法也存在很多问题,这些问题阻碍我们使用这种优秀的算法,我们可以绕过去,或者改造贪心算法。
该算法存在问题:
1.在有些时候不能保证求得的解是最佳的(这一条实际不是贪心算法本身的问题,而是贪心策略的问题);
2.不能用来求所有可能的情况;
3.一般不能用于二维以上的题目。
贪心法的运用范围:
1.明显的贪心(题目本身就是贪心)
2.贪心数据结构(如:
堆,胜者树)
3.可证明贪心策略的贪心(这是我们最常见的)
4.博弈、游戏策略,这些策略大多是贪心
5.求较优解或多次逼近
再具体的说,贪心算法采用自顶向下,以迭代的方式作出相继的贪心选择,每作一次谈心选择就将所求问题简化为一个规模更小的子问题。
对于一个具体问题,要确定它是否具有贪心选择的性质,我们必须证明每一步所作的贪心选择最终导致问题的最优解。
通常可以首先证明问题的一个整体最优解,是从贪心选择开始的,而且作了贪心选择后,原问题简化为一个规模更小的类似子问题。
然后,用数学归纳法证明,通过每一步作贪心选择,最终可得到问题的一个整体最优解。
笔者在这里举几个例子,以此来说明贪心算法的优缺点:
高级本【例3-4】活动选择(Page39)
设有n个活动组成集合S={1,…,m},其中每个活动都要求使用同一资源,而在同一时间只允许一个活动使用这一资源。
每个活动都有使用的起始时间bi和结束时间ei(
)。
若bi>ej或bj>ei则i与j兼容,求互相兼容的最大集合.
分析:
对于本题,直接想到的是回溯搜索,可是复杂度太大;再想想,会想到动态规划,甚至图论的最大覆盖之类。
但是本题确确实实可以用贪心来作,而且“贪”得如此简单:
一开始选择活动1,然后依次检查活动i是否与当前已选择的所有活动相容,若相容则活动加入到已选择的活动集合中,否则不选择活动i,而继续检查下一活动的相容性。
即:
活动i的开始时间不早于最近加入的活动j的结束时间。
看了【问题深入】(Page41),才恍然大悟。
这就说明贪心运用还是很广的,而且优点就是速度快。
再如习题册3-7餐巾一题,被很多书籍拿来说明动规的局限性或网络流最小费用流运用的典型例题,居然用贪心法做的那么好了,真是奇妙极了!
高级本【例3-3】0/1背包问题(Page38)
题目略
分析:
书上举了好几种贪心策略,都不能保证最优解。
一般认为这是一个NP问题(解决复杂度不是多项式),也就意味着它不会有一个绝对正确的贪心策略(在本文的第三部分还将讨论这个问题)。
所以贪心的缺点是运用范围狭窄,数学关系要求严格。
类似的有习题册3-10扇区填数,对于n>6时则不再存在贪心算法。
这里就真的让人想知道到底什么样的问题适用于贪心呢,答案是:
矩阵胚——贪心策略的理论基础
笔者看了lrj的书,上面的矩阵胚讲的太简洁,于是笔者又上网查找,现在大概能理解几分,自勉自勉。
"矩阵胚"理论是一种能够确定贪心策略何时能够产生最优解的理论。
矩阵胚是一个序对M=[S,I],其中S是一个有序非空集合,I是S的一个非空子集,成为S的一个独立子集.
如果M是一个N×M的矩阵的话,即
S是M的各个行,S=(a1,a2,……,an),I是线性无关的若干行ai,aj,ap……
若M是无向图G的矩阵胚的话,则S为图的边集,I是所有构成森林的一组边的子集。
如果对S的每一个元素X(X∈S)赋予一个正的权值W(X),则称矩阵胚M=(S,I)为一个加权矩阵胚。
适宜于用贪心策略来求解的许多问题都可以归结为在加权矩阵胚中找一个具有最大权值的独立子集的问题,即给定一个加权矩阵胚,M=(S,I),若能找出一个独立且具有最大可能权值的子集A,且A不被M中比它更大的独立子集所包含,那么A为最优子集,也是一个最大的独立子集。
针对绝大多数的信息学问题,只要它具备了"矩阵胚"的结构,便可用贪心策略求解。
矩阵胚理论对于我们判断贪心策略是否适用于某一复杂问题是十分有效的。
学习的好处!
总的来说:
贪心策略作为一种高效算法,广泛地应用与信息学奥林匹克竞赛中。
即使表面上看起来与贪心策略关系甚微的题目,运用贪心算法也可使程序的运行效率大大提高。
因此,深刻理解贪心策略的数学模型、特点、理论基础、尤其是运用其基本思想解决具体问题是十分重要的。
三、贪心策略探究
<一>各色的贪心策略
在贪心算法中,实现还是很容易的(尽管有些要用到“堆”之类的),关键的问题就是:
能否使用贪心算法,应该使用什么样式的贪心策略,在比赛时尽量从感观和简单数学关系(甚至特殊值)上研究出贪心算法(证明当然好,不过不一定有时间),在日常学习中认真证明贪心策略。
贪心策略的核心是不等式。
前面笔者说过,我现在正学习着高二数学第六章――“不等式”,相信大多数高一同学也是如此,可高一一下的同学就没有学习到,而且,我们学习的还只是简单的不等式运算(尽管我这几天被那四个平均不等式弄得头晕!
),远没有达到快速解决信息奥赛中贪心算法证明的水平!
所以建议我们提前学习一下不等式的内容,初学的可以去(人民教育出版社)下载高二上学期数学课本(现行教材)看看,然后上网搜索一下,找点数学读本或大学教材看看
――这是闲话。
下面一边举例子(书上的例子或其他的例子),一边学习。
我们可以将问题分为两大类:
(语出lrj书)
其中一类被称为P类问题,它存在有效算法,可求得最优解;
另一类问题被称为NPC类问题,这类问题到目前为止人们尚未找到求得最优解的有效算法,这就需要每一位程序设计人员根据自己对题目的理解设计出求较优解的方法。
贪心问题一般还是属于P问题,下面我们着重分析贪心策略在求解P类问题中的应用,然后提到一点NPC问题。
一、贪心策略在P类问题求解中的应用
<1>求P类最优解问题
这是我们奥赛最常遇到的题目,重要!
高级本【例3-1】删数问题
键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按左右次序组成一个新的正整数。
对给定的N和S,寻找一种删数规则使得剩下得数字组成的新数最小。
试题分析这是一道运用贪心策略求解的典型问题。
此题所需处理的数据从表面上看是一个整数。
其实,大家通过对此题得深入分析便知:
本题所给出的高精度正整数在具体做题时将它看作由若干个数字所组成的一串数,这是求解本题的一个重要突破。
这样便建立起了贪心策略的数学描述。
说实话,我还没有真正的证明出来书上的贪心策略!
这一题和别的题目不太一样,比如说:
对于:
178543去掉4位
结果是13,但是可以任意次序地去掉7854中每一个数字,也就是说:
虽然第一次去掉8是这一步最优解;但是如果去掉7,则之后可能去掉更多数,达到最后结果一样。
这是“后效性”!
我想了一段时间,只想出可以使用“倒推”的方法:
从一个最后最优值倒推到开始值,而每一步都是可以由我们所用的贪心算法推出!
这是可以证明的,具体的使用就是:
1(7)(8)(5)(4)3——这是最后结果,括弧中的为去掉的数。
每一次倒推都是从后向前,1、3划分出了3个区间,先找最后的,即“3”之后的区间,没有去掉的数字,也就不用再“恢复”了;再找倒数第二个区间“1”-“3”,中间可能是7、8、5、4,取最后一个上升区间的最小数,即4(7854),将其恢复:
1(7)(8)(5)43
然后用递归的思想将“1”-“3”区间再用“4”划分为两个区间:
“1”-“4”、“4”-“3”,同样的递归下去………………
直到“1”-“3”之间的都恢复了:
178543
然后看总的第三个区间:
”1”之前的,没有需要恢复的,则程序完毕。
我的这种想法,或许在本题上没什么用,但或许能用于本题的变换题。
我还是不会证明书上的策略,向大家请教!
1997年福建队选拔赛数列极差问题
在黑板上写了N个正整数作成的一个数列,进行如下操作:
每一次擦去其中的两个数a和b,然后在数列中加入一个数a×b+1,如此下去直至黑板上剩下一个数,在所有按这种操作方式最后得到的数中,最大的max,最小的为min,则该数列的极差定义为M=max-min。
编程任务:
对于给定的数列,编程计算出极差M。
试题分析当看到此题时,我们会发现求max与求min是两个相似的过程。
若我们把求解max与min的过程分开,着重探讨求max的问题。
下面我们以求max为例来讨论此题用贪心策略求解的合理性。
讨论:
假设经(N-3)次变换后得到3个数:
a,b,max'(max'≥a≥b),其中max'是(N-2)个数经(N-3)次f变换后所得的最大值,此时有两种求值方式,设其所求值分别为
,
,则有:
=(a×b+1)×max'+1,
=(a×max'+1)×b+1 所以
-
=max'-b≥0若经(N-2)次变换后所得的3个数为:
m,a,b(m≥a≥b)且m不为(N-2)次变换后的最大值,即m<max'则此时所求得的最大值为:
=(a×b+1)×m+1 此时
-
=(1+ab)(max'-m)>0 所以此时不为最优解。
所以若使第k(1≤k≤N-1)次变换后所得值最大,必使(k-1)次变换后所得值最大(符合贪心策略的特点2),在进行第k次变换时,只需取在进行(k-1)次变换后所得数列中的两最小数p,q施加f操作:
p←p×q+1,q←∞即可,因此此题可用贪心策略求解。
讨论完毕。
在求min时,我们只需在每次变换的数列中找到两个最大数p,q施加作用f:
p←p×q+1,q←-∞即可.原理同上。
这是一道两次运用贪心策略解决的一道问题,它要求较高的数学推理能力。
笔者是费了不少脑子。
NOI97最优乘车问题
H城是一个旅游胜地,每年都有成千上万的人前来观光.为方便游客,巴士公司在各个旅游景点及宾馆、饭店等地都设置了巴士站,并开通了一些单向巴士线路。
每条单向巴士线路从某个巴士站出发,依次途径若干个巴士站,最终到达终点巴士站。
阿昌最近到H城旅游,住在CUP饭店。
他很想去S公园游玩。
听人说,从CUP饭店到S公园可能有也可能没有直通巴士。
如果没有,就要换乘不同线路的单向巴士,还有可能无法乘巴士到达。
现在用整数1,2,...,n给H城的所有巴士站编号,约定CUP饭店的巴士站编号为1,S公园巴士站的编号为N。
写一个程序,帮助阿昌寻找一个最优乘车方案,使他在从CUP饭店到S公园的过程中换车的次数最少。
试题分析此题看上去很像一道搜索问题。
在搜索问题中,我们所求的使经过车站数最少的方案,而本题所求解的使换车次数最少的方案。
这两种情况的解是否完全相同呢?
我们来看一个实例:
如图所示:
共有5个车站(分别为a、b、c、d、e), 共有3条巴士线(线路A:
a→d;线路B:
a→b→c→e;线路C:
d→e)。
此时要使换车次数最少,应乘坐线路B的巴士,路线为:
a→b→c→e,换车次数为0;要使途经车站数最少,乘坐线路应为a→d→e,换车次数为1。
所以说使换车次数最少的路线和使途经车站数最少的方案不一定相同。
这使不能用搜索发求解此问题的原因之一。
原因之二,来自对数学模型的分析。
我们根据题中所给数据来建立一个图后会发现该图中存在大量的环,因而不适合用搜索法求解。
题目分析到这里,我们可以发现此题与NOI93的求最长路径问题有相似之处。
其实,此题完全可以套用上文所提到的Dijkstra算法来求解。
以上三道题只是使用了单一的贪心策略来求解的。
但是题目更加灵活,同时测试数据较大,规定的出解时间较短(挺狠的!
)。
在一些问题中,我们采用贪心策略对问题化简,从而使程序具有更高的效率。
NOI97最佳浏览路线问题
某旅游区的街道成网格状(见图),其中东西向的街道都是旅游街,南北向的街道都是林荫道。
由于游客众多,旅游街被规定为单行道。
游客在旅游街上只能从西向东走,在林荫道上既可以由南向北走,也可以从北向南走。
阿隆想到这个旅游区游玩。
他的好友阿福给了他一些建议,用分值表示所有旅游街相邻两个路口之间的道路值得浏览得程度,分值从-100到100的整数,所有林荫道不打分。
所有分值不可能全是负值。
例如下图是被打过分的某旅游区的街道图:
阿隆可以从任一路口开始浏览,在任一路口结束浏览。
请你写一个程序,帮助阿隆寻找一条最佳的浏览路线,使得这条路线的所有分值总和最大。
试题分析由于林荫道不打分,也就是说,无论游客在林荫道中怎么走,都不会影响得分。
因题可知,若游客需经过某一列的旅游街,则他一定要经过这一列的M条旅游街中分值最大的一条,才会使他所经路线的总分值最大。
这是一种贪心策略。
贪心策略的目的是降维,使题目所给出的一个矩阵便为一个数列。
下一步便是如何对这个数列进行处理。
在这一步,很多人用动态规划法求解,这种算法的时间复杂度为O(n2),当林荫道较多时,效率明显下降。
其实在这一步我们同样可以采用贪心法求解。
这时的时间复杂度为O(n)。
<2>求P类较优解问题
本来这些题目由于技术原因而很少出现,但是技术好了,题目多了,特别是NOI中。
比如下面这一题就是IOI'97中的第一试第一题。
国际信息学奥赛中出现的第一道NPC类问题。
IOI'97障碍物探测器问题
有一个登陆舱(POD),里面装有许多障碍物探测车(MEV),将在火星表面着陆,着陆后,探测车离开登陆舱向相距不远的先期到达的传送器(Transmitter)移动。
MEV一边移动,采集岩石(ROCK)标本,岩石由第一个访问到它的MEV所采集,每块岩石只能被采集一次,但是这以后,其他MEV可以从该处通过。
探测车MEV不能通过有障碍的地面。
本题限定探测车MEV只能沿着格子向南或向东从登陆处向传送器transmitter移动,允许多个探测车MEV在同一时间占据同一位置。
警告:
如果某个探测车MEV在到达传送器以前不能在继续合法前进时,则车中的石块必定不可挽回地全部丢失。
任务:
计算机探测车的每一步移动,使其送到传送器的岩石标本的数量尽可能多。
这两项都做到会使你的得分最高。
输入:
火星表面上登陆舱POD和传送器之间的位置用网格P和Q表示,登陆舱POD的位置总是在(1,1)点,传送器的位置总是在(P,Q)点。
火星上的不同表面用三中不同的数字符号来表示:
●0代表平坦无障碍
●1代表障碍
●2代表石块
输入文件的第一行为探测车的个数,第二行为P的值,第三行为Q的值。
接下来的Q行为一个Q×P的矩阵。
输出:
表示MEV移向transmitter的行动序列。
每行包含探测车号和一个数,0或1,这里0表示向南移动,1表示向东移动。
得分:
分数的计算将根据收集的岩石样本(取到传送器上)的数目,MEV到达传送器和不到达传送器的数目有关
●非法移动将导致求解无效,并记作零分,当MEV的障碍物上移动或移出网格,即视为非法。
●得分=(收集的样品并取到传送器上的数目+MEV到达传送器上的数目-MEV没有到达传送器上的数目)与应得的最大的数目之比(%)
●最高分为100%,最低分为0%
试题分析关于迷宫问题相信每一个参加信息学奥赛的选手都不会陌生。
对于不同的迷宫,我们可用搜索策略或动态规划进行求解。
在本题中,无论运用哪种解题策略均不能得到问题的最优解,我们的任务是合理选择一种解题策略,使我们运用该策略得到的较优解尽可能地接近最优解。
我们先来看一个例子(如图a所示)。
对于一个探测车而言,我们运用动态规划的方法使探测车经过岩石最多的一条路线便可得到问题的最优解(如图b所示),这时共可收集到岩石10个。
图a图b
当有2个探测车时,我们让第2辆探测车在图b的基础上从地图的起点S行进至终点f(如图c所示),这时我们共收集到岩石15个。
而实际上两辆探测车可收集到地图中的全部岩石(共16个),
图c
当探测车数量为3时,我们可以收集到全部的16个岩石。
我们可让从起点出发的每一辆探测车都收集到尽可能多的岩石,这实际上是一种贪心策略。
对于本题而言,贪心策略并不能保证所得结果全部为最优解,但由于每一辆探测车都收集尽可能多的岩石,而对于由计算机随机产生的测试数据而言,岩石是比较均匀地分布在地图中的,于是我们认为:
探测车收集岩石数≈探测车所游历的地图空间
让每一辆探测车收集尽可能多的岩石,也就是让探测车经过尽可能大的地图空间。
所以在探测车数量逐渐增多时,所有探测车所经过的地图空间越多,收集到的岩石也就越多,此时也就越接近最优解。
此题是否存在最优解呢?
其实,我们可以用网络流的算法来解决此题。
但实践证明,用网络流算法去求解本题所占空间较大,编程复杂度较高且程序调试起来较为困难,因此在实际比赛中,在限定的时间内用贪心策略完成对题目的求解不失为上策。
二、运用贪心策略求解NPC类问题
NPC类问题正在日益引起人们的兴趣。
它要求选手根据题意自己建立适当的模型,使程序的解尽量逼近最优解。
现在,信息学竞赛所涉及到的少量NPC类问题主要是运用贪心策略或随机化算法去求较优解的。
但是对于同一道NPC类问题来说,运用不同的贪心选择所求得的最优解是不同的,不同的贪心选择针对不同的测试数据所得解与最优解的逼近程度也是不同的。
所以有关NPC类问题的众多特性以及哪些问题运用贪心策略求得的较优解逼近于最优解仍是需要我们花费大量精力去研究的。
我们学生要努力学习了。
比如高级本【例3-8】并行计算就是一题求较优解的P问题,甚至可以算是NPC问题了。
高级本【例3-9】火力网也算是一个NPC问题,这需要引起我们的注意!
<二>贪心优化/启发式算法
对于林老师要求的第三个思考点:
如果不能严格证明你所采用的贪心策略的正确性,那么采用这种贪心算法编写的程序要尽可能地找各种可能性数据进行测试,以发现反例及时进行修补、重新考虑贪心策略、甚至改用其它算法求解!
请结合1个题目谈谈这个问题。
在两本书上也只有背包问题和随机化算法涉及,那么,笔者就谈谈背包。
高级本【例3-3】0/1背包问题(Page38)
在0/1背包问题中,需对容量为c的背包进行装载。
从n个物品中选取装入背包的物品,每件物品i的重量为wi,价值为pi。
对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高,即
取得最大值。
约束条件为
和
。
在这个表达式中,需求出
的值。
=1表示物品i装入背包中,
=0表示物品i不装入背包。
0/1背包问题有好几种贪心策略,就像书上所说的。
请允许我再“唠叨”一遍。
每个贪心策略都采用多步过程来完成背包的装入。
在每一步过程中利用贪心准则选择一个物品装入背包。
1.容量贪心准则为:
从剩余的物品中,选出可以装入背包的价值最大的物品,利用这种规则,价值最大的物品首先被装入(假设有足够容量),然后是下一个价值最大的物品,如此继续下去。
这种策略不能保证得到最优解。
例如,考虑n=2,w=[100,10,10],p=[20,15,15],c=105。
当利用价值贪心准则时,获得的解为x=[1,0,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪心 分治