(联考)noip85
败犬专场...
T1 莓良心
我打扮成你喜欢的样子来看你了,广,不,\(da,darling...\)
若 \(u,v\) 被分在同一组,则对答案有 \(w_{u}+w_{v}\) 的贡献,于是:
直接算 \(O(n^{2})\) ,事实上只需要两个,所以可以用容斥来算:
快速幂爆算 \(O(n\log{n})\) ,线性筛可做到 \(O(n)\) 。
T2 尽梨了
我成为你心中的第一位了吗?
首先通过临项干扰来确定选择的先后顺序,在时刻 \(t\) ,如果先去 \(i\) 比先去 \(j\) 更优,那么则需满足 \(a_{j}\times(b_{i}+1)<a_{i}\times{b_{j}+1}\) 。列个式子写一下就能发现
按此排序后,就有个 \(O(n^{2})\) 的dp,设\(dp_{i,j}\) 表示从前 \(i\) 个中选了 \(j\) 个的最小时间,根据是否选第 \(i\) 个转移即可。
直接做是 \(O(n^{2})\) 时间空间上都无法接受,如果没有 \(a_{i}=0\) 的,那么时间增长是呈指数级的,所以最多去 \(\log T\) 个商店,于是第二维开到 \(\log{T}\) 即可。
如果有 \(a_{i}=0\) ,其一定排在序列末尾,先对 \(a_{i}\neq0\) 的做遍dp,剩下的按 \(b\) 排序,贪心选即可。
事实上第二维开到200即可通过此题
T3 团不过
眼泪没能流出来。因为已经哭过很多次了。
正难则反,设 \(f_{i}\) 表示 \(i\) 堆石子时先手必败的方案数, \(g_{i}\) 表示 \(i\) 堆石子合法的方案数,\(m=2^{n}-1\) 。那么最后答案即为 \(g_{n}-f{n}\) 。
则 \(g_{i}=m^{\underline{i}}\) ,第一堆有 \(m\) 个选择,第二堆则有 \(m-1\) 个选择,以此类推,就是下降幂的形式。
由 \(i-1\) 转移到 \(i\) ,有一下几种情况:
-
前 \(i-1\) 堆任意选,通过调整第 \(i\) 堆使得异或和为0(一定存在),那方案数即为 \(g_{i-1}\) 。
-
若前 \(i-1\) 堆异或和为0,若要先手必败,则需要异或和为0,但第 \(i\) 堆不能为0,所以不合法,应减去,方案数即为 \(f_{i-1}\) 。
-
若前 \(i-1\) 堆中有 \(i-2\) 堆异或和为0,如果要先手必败,则只能让第 \(i\) 堆跟前 \(i-1\) 堆中剩下的那一堆相等,不合法,应减去。剩下的那一堆有 \(i-1\) 个位置可选,有\(m-(i-2)\) 种取值(要保证前 \(i-1\) 堆是合法的,才能判断是否先手必败),前 \(i-2\) 堆先手必败的方案数为 \(f_{i-2}\) ,那么此类总方案数即为 \((i-1)\times(m-(i-2))\times f_{i-2}\) 。
所以: \(f_{i}=g_{i-1}-f_{i-1}-(i-1)\times(m-(i-2))\times f_{i-2}\) ,直接递推即可。
T4 七负我
既然真白你说不要的话,神田君就归我了哦。
这部还没看过呢
结论题。
考场多模样例,多推性质。
100pts的话用meet in the middle 或 Born-Kerbosch找即可。