这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
2022-2023:teams:loaf_on_contest:front_page:nowcoder4 [2022/08/28 11:51] toby-shi |
2022-2023:teams:loaf_on_contest:front_page:nowcoder4 [2022/08/31 21:32] (当前版本) yuki |
||
---|---|---|---|
行 9: | 行 9: | ||
=====D===== | =====D===== | ||
+ | 本场的签到题之一,当一个人的三个参数 IQ、EQ、AQ 均不小于某个工作给定的值时,这个人就可以胜任这份工作,需要统计有多少个公司可以给某人提供岗位。 | ||
+ | |||
+ | 由于公司数量非常少(只有10),因此使用f[i][a][b]表示第i个公司,要求为 $IQ\geq a$,$EQ\geq b$ 的岗位的 $AQ$ 最小值。 | ||
+ | |||
+ | 显然有:\\ | ||
+ | f[i][j][k] = min(f[i][j][k], f[i][j - 1][k]);\\ | ||
+ | f[i][j][k] = min(f[i][j][k], f[i][j][k - 1]);\\ | ||
+ | f[i][j][k] = min(f[i][j][k], f[i][j - 1][k - 1]);\\ | ||
+ | |||
+ | 然后询问时,枚举所有公司统计即可。 | ||
+ | |||
=====N===== | =====N===== | ||
+ | |||
+ | 一开始拿到题没看懂,以为是直接把那个方差算出来,然后成功的WA掉了。。。 | ||
+ | |||
+ | 在经历了半个小时的仔细读题之后,哦,原来是要任意选两个数$a,b$,变成$a\& b,a|b$,直到无法变化为止 | ||
+ | |||
+ | 那就把所有二进制位上的$1$一个个扒出来,每次把当前能填的往最大数上添,一个数的一个二进制位最多填一个$1$ | ||
+ | |||
+ | 这样出来的玩意一定是最后的结果 | ||
+ | |||
+ | 因为小的数一定被大数包含 | ||
+ | |||
+ | 最后算个方差就解决了 | ||
+ | |||
+ | 然后本stockholm制杖忘记了$gcd$。。。 | ||
+ | |||
+ | 最后还是过了 | ||
=====A===== | =====A===== | ||
+ | 这种莫名其妙的数学题一般都是Toby的专长。 | ||
+ | 这个题,后来看题解知道是DP,但是Toby选择了贪心。\\ | ||
+ | 贪心策略是,每次遍历序列,找到一个当前能使答案最佳的值加入当前答案序列中。然后根据$w_x + p_x * w_y > w_y + p_y * w_x$排序(这个排序理由是很好说的,选两个相邻的,考察交换他们造成的影响就能得出这个偏序排序,但是这个排序只适用于已经选好数的情况下,不适用于选数)。 | ||
+ | 这个贪心的复杂度就是$O(nm^2 + nmlogm)$完全没有问题。 | ||
+ | |||
+ | 这个贪心正确的严谨证明我给不出。但是可以说一个大概。\\ | ||
+ | 大意就是,选一个当前值最佳的,这个值不一定会放在这个位置,但是必然会出现在答案序列中。否则,这个数代替答案序列中这个位置的数,会使答案上升。所以这个数至少会出现在序列中。 | ||
=====H===== | =====H===== | ||
+ | 一个很简单的构造题,感觉条件挺宽松了,很多种方法应该都可以。 | ||
=====L===== | =====L===== | ||
+ | 本来yr在做这个题,后来Toby也来了。yr用几何方法,我尝试建系。 | ||
+ | |||
+ | 建系确实是困难的,所以实际上建系花了一个小时,计算只花了20分钟。 | ||
+ | |||
+ | 建系过程详见下图: | ||
+ | {{https://s2.loli.net/2022/08/28/VqUYlhBM4of1Rwj.jpg|p1}} | ||
+ | {{https://s2.loli.net/2022/08/28/Ts3APj8LCSFkU1n.jpg|p2}} |