Answers:
这不是更干净的方法,但是它是为更高级的东西做准备的好方法,并且是抽象的一个很好的例子...
可以使用Davenport-Schinzel序列参数。考虑区域线上方的区域。每条线变成一条光线,实际上是两条光线,因为我们认为左侧和右侧是不同的。从左到右扫描该区域的边界,记下遇到的光线。这是在2n个符号上定义的序列,并且模式abab是非法的。这样,序列的长度最多为2(2n)-1 = 4n-1。将其应用到该线下方的区域,意味着边界为8n。
现在,证明没有... a..b..a..b ...作为n个符号的子序列的符号序列的长度为2n-1是容易的。实际上,请考虑在此序列中彼此最接近的两个相同字符的连续出现。显然,在这两个字符之间,出现的每个字符必须是唯一的。考虑一个这样的字符,并观察它是否出现在字符串中的其他位置,那么我们将获得禁止的子序列。因此,此字符在字符串中仅出现一次。删除它,如果您创建了两个连续的相同字符,则需要删除一个多余的字符。即,从字符串中删除字符将其缩短2,因此,字符串的最大长度为2n-1。
我发现归纳法非常直观,并且被您的含意所冒犯。但是什么收费的论点呢?
Wlog假定定义区域的线是水平的(否则旋转),并且这些线处于一般位置(否则会扰动并使区域更复杂)。删除其他n行之一。将生成区域的边缘分为左边界或右边界,分别取决于区域是位于其右侧还是左侧。(有些边沿既是左边界又是右边界,但在复杂性边界中被计数两次。)根据归纳假设,最多存在3n-3个左边界。(基本情况n = 0是微不足道的。)重新插入已删除的行最多会添加3个左边界(该行本身有一个边界,另外两个则是分割较旧的左边界)。因此,左边界的总数至多为3n。对称地,右边界的数量最多为3n,因此区域的总复杂度最多为6n。
大卫·芒特(David Mount)计算几何类讲义的第13页上有一个收费论据的证明作为练习(以及逐步提示):http : //www.cs.umd.edu/class/fall2005/cmsc754/Handouts/ cmsc754-handouts.pdf