2020.11.21【NOIP提高B组】模拟 总结
强力谴责前两题的样例输入的bug。
第一题不难,可以直接用递推公式
s
i
,
j
=
j
s
i
−
1
,
j
+
s
i
−
1
,
j
−
1
s_{i,j}=js_{i-1,j}+s_{i-1,j-1}
si,j=jsi−1,j+si−1,j−1
做。但是不会满分。应该60。
第二题不会,贪心or动态规划。打了一个搜索。
第三题不会。数据结构?异或? t r i e trie trie?
第四题直接打表。估计是字符串算法?
Update after contest:
第一题:拿了80,其实很简单,就是一个前缀和统计。
第二题:搜索30。60分是
d
p
dp
dp。然后正解是贪心:每次选此大根堆中最大的数,然后把两边删除,然后链表相连。注意权值为这两边的权值和减去当前的权值。时间复杂度
O
(
n
log
2
n
)
O(n\log_2 ^n)
O(nlog2n)
第三题:用并查集,对于
l
,
r
,
k
l,r,k
l,r,k,分
l
l
l的祖先与
r
r
r的祖先相同或不同两种情况,然后用类似前缀和求
l
l
l到
r
r
r的异或值。最后贪心选择最小的构成字典序最小。
第四题:不会弄,似乎是贪心在 t r i e trie trie上然后交换括号?