省选模拟35

A.

  在dfs序上考虑,那么子树就对应着dfs序上的一段区间,所以是个奇怪的偏序问题。

  不考虑复杂度的话简单的线段树套set就可以实现,然而复杂度是2个log,这道题卡掉了。

  所以考虑开两棵线段树,分别维护前缀和后缀,那么讨论完了之后就变成了简单的前后缀关系,所以线段树上的操作可以线性解决了。

B.

  路径问题考虑点分治就好。

  考虑处理跨过分治重心的路径,那么两边连起来是合法的当且仅当两边是最大或最小值,并且前缀和互为相反数。

  所以只要将这些东西配对即可。

  化一化式子可以发现是卷积形式。直接卷就行了。

C.

  80分的做法是状压小于根号的质因子。枚举每个大的质因子加入即可。

  题解先扔了两个结论:

  被选的数最多只有两个质因子,假如有两个质因子那么必然一个大于根号。

  有了这个结论就可以很简单的做了。直接建出来图跑费用流搞就完了。

原文地址:https://www.cnblogs.com/hzoi-cbx/p/12398437.html