2022HDU多校第六场
2022HDU多校第六场
过程
开场1h艰难签到06,一直在想结论,结果就是dp,哪来结论。10一眼对偶图最小生成树那么就是原图最大生成树。然后07陷入bsgs的陷阱。只能说这场体现了自己的思维太局限了,总是想到啥写到啥,应该在更深的想一想有没有更简单更容易地实现,赛场上思维应该打开。我怎么这么菜呢,菜就要多练。
题解
06
dp思想,当前节点子树最大\(b_i\)和为儿子的最大dp值加上当前节点子树大小
07
一眼离散对数想到bsgs,其实不然,\(d_i\)的范围2e5直接预处理出所有\(a^x\),然后\(n*q\)查询,每次求出\(s\)的逆元即可,这里可首先预处理出来,这里推荐使用unordered_map比map块,需要注意特判\(s_i\)为0和\(x_i\)为0的情况
08
找规律,待补
09
解二元一次方程组,但写起来有点麻烦(自己代码能力太差了)
10
对偶图最小生成树,那么就是原图最大生成树,直接将边倒叙克鲁斯卡尔即可
12
注意到一次操作相当于选一个位置,将其移到其后方任意一个位置,那么我们贪心的找到第一个\(a_i<a_{i+1}\)的位置,将\(a_i\)提取出来,注意到提取后\(a_{i+1}\)可能会与\(a_{i-1}\)继续比较,因此维护一个单调递减的单调栈,可进行k次提取,提取出来的元素放入大跟堆中。随后将单调栈中的元素与大根堆中的元素合并成一个新的数组,每次将栈底元素和堆顶元素比较,大的合并到新数组中,注意是栈底,输出合并后结果即可。