Day7
CF1672E notepad.exe
如果对于所有行数我们都找到可能的最小 \(w\),复杂度是 \(O(n\log n)\) 的。观察数据规模大概是在 \(O(n+\log n)\) 级别的。
于是我们可以通过一次二分,找到全放在第一行所需要的长度记为 \(w_1\)。我们枚举行数 \(h\),发现放 \(h\) 行如果比 \(1\) 行更优的话,那么 \(h\) 的长度 \(w_h\le \lfloor\dfrac{w_1}{h} \rfloor\)。我们又知道放 \(h\) 行最多能节省的是单词之间的空格 \(h-1\) 个,即 \(h\times w_h\ge w_1-h+1\),所以 \(w_h\) 只能取 \(\lfloor\dfrac{w_1}{h} \rfloor\),对于每个 \(h\) 单词询问即可。
CF1354G Find a Gift
Trick: 看到 \(> \dfrac{n}{2}\),就要想到随机化。
随机化找到一个石子。然后倍增寻找第一个礼物所在区域,最后在该区域内二分即可。
QOJ7637. Exactly Three Neighbors
数据范围很小,可以当作提交答案题来做。
可以发现 \(\le\dfrac{2}{3}\) 一定有解,两黑列夹一列白是 \(\dfrac{2}{3}\),发现如果两个白列中间夹了一个白列这样子的话,白列是可以无限增多的。
\(1\) 白最多对应 \(4\) 黑,所以极限是 \(\dfrac{4}{5}\)。可以构造验证,用大小为 \(5\times 5\) 的矩阵,每列每行出现一个白即可。
剩下就只有 \(\dfrac{3}{4}\),\(\dfrac{5}{7}\),\(\dfrac{7}{9}\),\(\dfrac{7}{10}\)。
\(\dfrac{4}{5}\) 可以用一圈黑围一个白,如果我们用一圈黑围住两个白,那就是 \(\dfrac{3}{4}\) 了。除了 \(\dfrac{7}{9}\) 之外的都可以类似构造。对于 \(\dfrac{7}{9}\),可以这么构造。
这样子可以构造出 \(\dfrac{2}{3}\) 到 \(\dfrac{4}{5}\) 间的所有数字。
HDU 7393
有 \(n\) 个人,每个人头上有个 \([1,m]\) 之间的某个数字,每个人都能看到其他所有人的数字,但看不到自己的。求一种整体策略,使得至少 \(\lfloor\dfrac{n}{m} \rfloor\) 个人猜对自己头上的数字。
发现一个人猜对的概率为 \(\dfrac{1}{m}\),题目中所给下界就是近似于期望的一个数字。但是随机猜的话有可能低于下界,我们要构造一个互斥的方案。每个人给出的数字就是自己能看到的所有数字和模 \(m\) 后 \(+1\)。
AGC004F Namori
对于树,
CF1450C2 Errich-Tac-Toe (Hard Version)
对于 \(i+j\bmod 3\) 分三类,然后根据选哪两类又可以分成三种操作,这三种操作可以覆盖整个图,选最少的那个操作就行了。
Topcoder 13366
给定一个 \(n\times m\) 的图,其中一些位置是不能放兔子的,现在要求随机 \(r\) 个位置放兔子,然后每个兔子向欧几里得距离最近的兔子连无向边(如果有多个相同就行坐标最小,再相同就列坐标最小),问这样的图期望有多少个联通块。\(n,m\le 20\)。
把不可做通过找性质转化为可做。
每一个兔子连一条边,连出来的是一个基环树。基环树计数,可以对于环来计数。
我们发现一个圈上长度相同,同时又有长度相同的时候的坐标限制,所以只能是二元环。
CF1909H Parallel Swaps Sortf
把值域压成 0/1 可以做出 \(O(n\log n)\),但是无法继续优化。
Zigzag MST
HDU 6664
给定无向图,有边权。求经过某 \(k\) 个点各一次的最大权值和。 \(n,m\le 10^4,k\le 6\)。
单次正确率 \(\dfrac{k!}{k^k}\)
AGC006D Median Pyramid Hard
削弱条件/特定数据
可以改成 \(a_i\in\{0,1\}\)。然后二分。
QOJ141. 8 染色
把两个优化拼接在一起。一种优化是只传前两个 bit 跑二分图染色,还有一个是度数优化。
CF1887E Good Colorings
考虑将行列拿出来形成一个二分图,中间连一条颜色边。\(2n\) 个点 \(2n\) 条边,必定有一个偶环。不断从中间缩短这个偶环即可。
AGC044D Guess the Password
\(dis(S,T)=\lvert S\rvert-\lvert T\rvert\),当且仅当 \(T\) 是 \(S\) 的子串。
清华集训 文学
给定 \(p\le100\) 个平面上的点,和 \(n\le 100\) 个有代价的半平面(\(ax+by\le c\)),需要你选出一些半平面覆盖所有点,使得代价之和最小。
发现半平面剩下部分构成了凸包。区间 DP
HDU 6804
给定两个班级,分别有 \(n\) 和 \(m\) 个学生,学生有力量和价值两个属性,现在要对两个班级分别找出一个集合,使得这两个集合相等并且价值之和最大化。\(n,m\le 1000,w_i\le1000,\lvert v_i \rvert\le 10^9\)。
这个背包值域太大,于是打乱数组,期望值域是 \(O(\sqrt V)\) 的。
Pepe Racing
对于询问后凑不齐 \(n\) 个的就从别的里里面找一个非组内最大值的拉过来。这样子不会影响全局最大值。
AGC019F Yes or No
\(\max(n,m)\) 每次减一的时候,答案加一。不减的时候如果 \(n=m\) 答案加 \(0.5\)。