cf Match Points 一个骚题目
Posted waldenlake
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf Match Points 一个骚题目相关的知识,希望对你有一定的参考价值。
一个骚题目,自己真是naive,真是naive
http://codeforces.com/contest/1156/problem/C
俄罗斯英语看着真几把费劲。
本以为贪心就完了,但是却想当然了,这个题目得好好反思,做了两个题目排名900多???我服了。
假设我们已经有了一个最终的最优答案,那么有如下两个观察:
1.那么我们可以证明两对match的点(a,b)和(c,d)中,两者必然可以不嵌套,就是a<c<d<b。因为我们基于d-c>z那么必有d-a>z那么可以解这个嵌套的情况为(a,d)和(c,b)。
2.两对match的点(a,b)和(c,d)中,两者必然可以相交。因为如果a<b<c<d,容易证明(a,c)和(b,d)必然也是合法的。
很容易根据观察1想到滑动窗口是不???
naive!!!
因为:
滑动窗口的题目->答案不嵌套
答案不嵌套 ≠ 滑动窗口
两者不是充要的。行,今天长记性了!
反例:
n=4 z=2
arr= [ 1 , 3 , 4 , 5 ]
滑动窗口的话:1和3匹配完了,4和5匹配不了,于是只能成1对。
但是最优答案是(1,3),(3,5)
而观察2证明的匹配对必然相交让我们的右边界必须从数组的右半边来找。
如果答案是n//2那么匹配的两边各来自左右半边才能符合观察2,对不?而且还是从小到大一一对应。
最好能用最优答案转换的方法证明这个结论是对的,因为现在还是不显然。
以上是关于cf Match Points 一个骚题目的主要内容,如果未能解决你的问题,请参考以下文章