先看了 \(D\) 题。
第 \(i\) 个小盆友所在组人数为 \(a_i\)。所以 \(c_i\le a_i\le d_i\)。当时看到这个东西就想起了差分约束,但仔细想了想差分约束好像是返回任意一种方案,于是扔掉。接着思考到了 dp + 优化。
设 \(dp_i\) 为当前组的末尾在 \(i\) 的最多组数目,第二问先不想。
\[dp_i=\max_{1\le j\le i} dp_{j-1}+1
\]
\(j\) 需要满足 \(c_{\max,j\sim i}\le i-j+1\le d_{\min,j\sim i}\)
于是想到化解这个又臭又长的式。接下来发生的事就是 \(10\) min 后承认跳 \(C\) 是明智的选择。
看到 \(C\) 的柿子:
\[w_e=(w_u-w_v)^2=w_u^2+w_v^2-2w_uw_v
\]
\[w(C)=\sum_{i=1}^{n}w_i^2+G
\]
变成求 \(a\) 的一排列,使得 \(G=a_1a_2+a_2a_3+a_3a_4+\dots+a_na_1\) 最大(\(a=w\))。于是打表找规律。好像有一个规律。顺序:先正序奇数,再倒序偶数。也就是:
\(n\) 为偶数:
\[1,3,5\dots,n-1,n,n-2,n-4,\dots,2
\]
\(n\) 为奇数:
\[1,3,5\dots,n,n-1,n-3,n-5,\dots,2
\]
不会证明。看到大样例全过就没管了。
然后看 \(A\)。
先口糊了一个容斥,\(O(3^m)\) 的。\(m=20\) 要跑 \(9\) min 多。
然后发现 \(C\) 好像要开 __int128。所以为啥没开能过((。
接下来就一直在想 \(A\) 的优化,直到比赛结束了。其中还写了个 \(D\) 的暴力。
总结一下这次比赛,时间分配很有问题,\(B\) 题甚至没有想任何思路。以后比赛要合理分配时间,不在一道题上花费太多的时间。并且要训练一下弹性的思维,现在太生硬了。
最后拿到 \(25+0+100+0\) 的孬成绩。还是太菜了。但是 \(D\) 题没有分是何意味啊。
