摆了这么久,这次要认真打了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A
12a+b12a+b12a+b。
B
用 map 记录每行每个数出现的次数,然后依次查询即可。
C
差点以为是 candy(((
首先让所有的驯鹿都拉雪橇。我们会发现如果让一个驯鹿改到骑雪橇,力量差会减少 Wi+PiW_i+P_iWi +Pi 。
所以我们可以将每只驯鹿按 Wi+PiW_i+P_iWi +Pi 排序,逐个枚举到哪个时候力量差会 <0\lt 0<0。
D
D < C。
考虑拆开计算。显然可以分为 Ai<BiA_i\lt B_iAi <Bi 和 Ai≥BiA_i\ge B_iAi ≥Bi 两组,这两个的贡献分别为 Bi−Ai,Ai−BiB_i-A_i,A_i-B_iBi −Ai ,Ai −Bi 。
将 AAA 排序后二分即可。
3×105×105×109=3×1019≥2643\times 10^5\times 10^5\times 10^9=3\times 10^{19}\ge 2^{64}3×105×105×109=3×1019≥264,计算过程时得取模。
E
注意到如果给它建一棵 Trie,节点数不会超过 O(n)O(n)O(n) 个。
所以直接动态开点建 Trie 然后按顺序遍历即可。
F
诶我去怎么是二维的啊。诶我去怎么还有区间查。
不用慌,题目中让我们求的是曼哈顿距离。
所以考虑分类讨论。分成左上,左下,右上,右下的情况,然后分别取最大值就行了。
显然,如果某个点在左上,那么只有左上的查询曼哈顿距离是最大的。其他同理。
所以可以直接无脑线段树。