【题解】牛客OI周赛7-提高组

A.小睿睿的等式

题目分析

送温暖题
注意不要对每个数暴力拆分算,对于每个数预处理即可
时间复杂度:O(n)

题目分析

送温暖题++
ST表O(1)即可解决
为了鼓励多种写法,特意在生成数列时限制各数的大小<100
时间复杂度:O(nlogn+m)

题目分析

总方案数易求,考虑不合法的方案数:

每对情侣对方案的负贡献:

当两个结点非祖先-后代关系时,两个结点的子树间的路径方案数

当两个结点为祖先-后代关系时,贡献为后代的子树与(整颗树除祖先子树的部分+祖先子树除 祖先含后代的子树)间的路径方案数

考虑用一n*n的矩阵里的三角形来表示方案数,矩阵上(i,j)或(j,i)点表示i与j的方案是不合法的,那么用dfs序来映射点,一个点的子树的dfs序连续,每个贡献可以表示为若干矩形区域,那么用线段树+扫描线即可计算出不合法的方案数

注意与矩阵对角线对称的点应同时更新

时间复杂度:O(nlogn)

题解及代码Link:https://mczhuang.cn/?p=2106


全部评论
感觉T1数据范围设置的有点问题 我学弟写了个暴力拆分算的代码过了 代码:https://paste.ubuntu.com/p/k3VnqjwgCK/
点赞 回复 分享
发布于 2019-02-22 22:47

相关推荐

绝迹的星:前端和后端写两份简历, 如果想干全栈就直接写求职意向为全栈工程师
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务