Loading

2023/6/19 考试总结

时间安排

7.10~8.00

怎么 \(T1\) 是求最大团啊,感觉很流。
但是不会。
看了看,发现三道题,发现一道题都不会多项式做法。
相当自闭。

8.00~9.00

枚举团的直径,然后把圆心连起来得到一条线段,把点分成线段上方和下方,然后发现上方和下方内部都是完全图,因此补图就是一个二分图,求个最大独立集就好了。
写了个叉积,写了个网络流,过了大样例就交了。

9.00~9.20

写了个 \(2^w\) 的暴力判断,应该有 \(55\) 分,

9.20~10.00

\(T3\) 看起来也很像流,写出线性规划后建出图了,但是看起来很不对劲。
仔细分析了一下之后发现线性规划的最优解不是整数,然后就开摆了。

10.00~11.00

写了个状压,写了个模拟退火,不知道能有多少分。

11.00~12.00

调调退火的参数,然后就真的不会写了。

考试总结

T2

考试的时候原本以为是结论题,结果正解是分析了一堆性质,得出除了个别情况之外,只要数列里有不是 \(12\) 的倍数的数就合法。

因此直接状压选了哪些倍数就行了。

还是没有很详细地分析性质,不然应该是可以发现的。

其实打个表应该也是可以得到结论的。

下次要再深入地分析一下性质。

T3

巨大神仙题。

首先容易想到先把所有路径钦定为区间,然后再选择若干翻转成区间补。

接下来的性质我就没想到,最终反转的区间一定两两有交,否则不翻转一定更优。

因为都是区间,所以一定存在一个位置 \(t\),满足所有被翻转的区间都包含它。

然后可以得到一个 \(O(n^3\log^2 n)\) 的贪心:

二分答案 \(ans\),枚举总共翻转的区间个数 \(cnt\) ,枚举位置 \(t\)

我们从左到右扫,每次加入左端点等于 \(i\) 的区间。

对于位置 \(i\),如果之前已经加入了 \(c\) 个区间,这个位置原本被覆盖的次数是 \(a_i\),那么最后应当被覆盖的次数是 \(a_i-c+cnt-c\),如果 \(a_i+cnt-2c>ans\),我们就需要翻转若干区间使得 \(c\) 增大。

根据贪心,我们肯定会选择右端点尽可能大的区间,因此用一个堆维护就行了。

可以得到 \(45pts\)

然后就是人类智慧了,可以得到三个性质:

由于 \(t\) 只要被翻转的区间包含就行了,我们不妨让 \(t\)\(b_t\) 最大的位置,其中 \(b_t\) 为最中被覆盖的次数。
因为合法的 \(t\) 一定满足 \(b_t=a_t-cnt\),所以 \(t\) 一定也是区间中 \(a\) 最大的位置。

\(b_t\geq b_{t}-1\)

可以通过调整得到,因为 \(cnt=a_t-b_t\),所以 \(b_t=ans-1\) 或者 \(ans\),因此 \(cnt=a_t-ans\) 或者 \(a_t-ans+1\)
复杂度变成 \(O(n^2\log ^2n)\)

\(a_t\geq a_i\)

因此 \(t\) 取最大的 \(a\) 就行了,复杂度变成 \(O(n\log^2 n)\)

虽然正式比赛应该想不到这些性质,但是如果考虑到一般情况下,极值具有特殊的性质,也许也是可以通过的把。
但是第一步的性质没有分析到,还是要反思一下的。

posted @ 2023-06-19 18:16  Larunatrecy  阅读(17)  评论(0)    收藏  举报