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次提取,提取出来的元素放入大跟堆中。随后将单调栈中的元素与大根堆中的元素合并成一个新的数组,每次将栈底元素和堆顶元素比较,大的合并到新数组中,注意是栈底,输出合并后结果即可。

posted @ 2022-08-06 00:48  Mr_cold  阅读(46)  评论(0编辑  收藏  举报