tg 91 solution

T1

首先对于每种颜色,
找出所有灯同时亮这种颜色的最小时间,
直接加上一个最小正周期就是所有灯亮同一种颜色的时间了

然后你可以把每种颜色对应的同时亮的时间t写成线性同余方程组的形式
模数是每个灯的周期,余数是这个颜色在这个循环的位置
然后exCRT解一下就没了,模不一定互质嗷
记得特判无解

后续过程还要计算这个灯对答案贡献
考虑差分,算[0,r]减掉[0,l1]
记最小正周期T,其实就是所有模数的最小公倍数
[0,r]所有时刻就是rT+[trmodT],
后面那个是艾佛森括号,就是bool变量的意思

不知道我是在什么样的精神状态下认为这个东西是O(n2)

T2

单算一个质数,然后乘法原理合并

考虑对每个数先除掉x
记当前质数为pinow=biai
则考虑选的范围就是[0,now],并且\existi[1,n],i=0&\existi[1,n],i=now

直接数不太好数,考虑容斥
我们首先让每个数任意,当做全集S
每个数有|[0,now]|=now+1种选择,于是有|S|=(now+1)n
考虑强制不出现0,每个数有|[1,now]|=now中选择,于是有|S1|=nown
强制不出现now同理,于是有|S2|=nown

这之中去掉两次S3,即在任意选择[1,now)任意选择
考虑再加上这一部分即可,这一部分|S3|=(now1)n

一个质数的贡献就是|S||S1||S2|+|S3|,乘一块就没了

T3

发现差分就是组合数
然后就转换成这个东西
i=0nj=0m(ij)
后面直接换掉,没看明白右转OI-Wiki
j=0m(n+1j+1)
下标加个1,同时考虑整洁我们要再来一个k=0
于是我们就要减掉一个新加的(n+10)
j=0m(n+1j)1

其实这个形式和给的fn,m很像,我们考虑研究那玩意
fn,m=i=0m(ni)
考虑到模数不大,先一个Lucas定理
i=0m(npip)(nmodpimodp)
按模数和余数分类,后面加的那一项是m除不尽剩下的
i=0mp1(npip)j=0p1(nmodpj)+(npmp)i=0mmodp(nmodpi)

然后你发现这一项形式i=0mp1(npip)确实不错,这不就是f吗,换了

fnp,mp1j=0p1(nmodpj)+(npmp)i=0mmodp(nmodpi)

递归求解就好了,时间复杂度其实不大,应该是O(plogpn)这个东西
后面那只log底数太大所以其实影响不大

T4

首先看出这题期望是假的,分母是好算的
我们只需要算出路径长度和乘个分母就好了

首先拆一个树上差分的式子
然后你会发现确实没那么难算

算每一个dpi&dpj都好算
dpi就直接维护一个比它大的数的数量
dpj就直接维护比它大的点所有深度和
其实按照a降序排序维护前缀和这两个东西就无了

关键是lca(i,j)
线段树维护一棵初始点权为0的树,
我们在加入一个点的时候将这个点到根路径上的每个点都加上1
查询时直接查i到根路径上的点权和,
与 [LNOI2014]LCA 一题类似。

一张图片解析?
image

最后的最后
a相同的点要一起线段树修改,不要一个一个加!!!

posted @   2K22  阅读(32)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示