<span>省选模拟49 题解</span>

A. Manager

问题是每个子树的中位数。

每次的修改操作是改成最大值。

所以只要考虑修改前的值是 $x$,如果 $x$ 大于一个祖先的中位数,那么对中位数无影响,否则将答案更新为中位数右移一位的数即可。

然后发现只要预处理出两种答案。

每次的操作就是询问一条祖先链,这个只要用一个数据结构维护一下,支持单点修改区间查询就完事了。

 

B. GCD再放送

首先弄一个莫比乌斯反演,然后问题就转化为了对 $\gcd$ 为 $x$ 的倍数的计数。

对于每个 $x$,将每个序列分为三类。

分别是整体的 $\gcd$ 为 $x$ 的倍数、有一些前缀 $\gcd$ 为 $x$ 的倍数、有一些后缀 $\gcd$ 为 $x$ 的倍数。

然后可以将区间 $gcd$ 为 $x$ 的倍数分为几类。

对于每一类,分别用组合数计算就行了。

 

C. dict

要统计字典序严格小于另一个字符串的字符串个数,那就搞个按位确定。

枚举前面有多少位与原字符串相同,然后钦定当前位小于比较字符串的当前位即可。

然后发现每次能填的数并不多,暴力去用组合数做就是 $O(nm)$ 的,其实不断填数的过程就对应着二叉树的划分。

所以发现搞一个 $dsu on tree$,每次分两种情况:当前集合、全集减补集套路即可。

全部评论

相关推荐

湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 18:02
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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