欢迎光临散文网 会员登陆 & 注册

复盘|第94场双周赛

2022-12-30 20:30 作者:UCLmsc  | 我要投稿

最多可以摧毁的敌人城堡数目

【模拟】对每个 1,向左向右找 -1,且中间的必须都是 0。

奖励最顶尖的 K 名学生

【哈希表 + 模拟】先把单词对应的分数存到哈希表里,对于每个report_i找对应分数,最后取前k个。

最小化两个数组中的最大值

【数学】记divisor1和diviso2为d1和d2,记LCM为d1和d2的最小公倍数。能被d2整除但不能被d1整除的数,能在arr1中且不能在a2中;能被d1整除但不能被d2整除的数,能在arr2中且不能在arr1中;既不能被d1整除也不能被d2整除的数,可以在arr1和arr2中。二分答案x,根据容斥原理,二分判定条件为x - ⌊x/d1⌋ - ⌊x/d2⌋ + ⌊x/lcm⌋ ≥ max(uniqueCnt1 - ⌊x/d2⌋ + ⌊x/lcm⌋, 0) + max(uniqueCnt2 - ⌊x/d1⌋ + ⌊x/lcm⌋。代码实现时,二分上界可以取(uniqueCnt1+unique Cnt2)*2-1,因为最坏情况下d1=d2=2,只能取奇数。

统计同位异构字符串数目

【组合计数】每个单词互相独立,分别计算每个单词的排列数,再相乘。对于一个长为n的单词,全排列数为n!,考虑到相同字符,需要除以m!(m为相同字母的数量)。设列表a含有x种元素,其各自的数量为[cnt1, cnt2, cnt3, cnt4....,cntx],那么ans = C(n, n1) C(n-c1, c2) C(n-c1-c2, c3) ... C(cx, cx)。

也可以用逆元+费马小定理实现。[费马小定理:a, p 互素, 且 p 为素数 a^(p-1) mod p = 1 可以推导出 (ans / mul) mod p = (ans / mul 1) mod p = (ans / mul mul ^ (p - 1)) mod p = (ans * mul ^ (p - 2)) mod p]


复盘|第94场双周赛的评论 (共 条)

分享到微博请遵守国家法律