abc378

A

模拟。

B

模拟。

C

模拟。

D

爆搜。

E

题意

给一个序列 A 和一个正整数 M,求:

1lrN((lirAi)modM).

分析

先做个前缀和 S,原式化为:

1lrN(SrSl1)modM,

根据 SrSl1 的大小关系可以分两类。

(SrSl1)modM=SrSl1+{0(Sl1Sr)M(Sl1>Sr),

注意到比 Sr 大的 Sl 会对答案产生 M的贡献,令 Xr=size:{l=1,2,,r|Sl1>Sr} 则原式化为:

r=1Nl=1r(SrSl1)modM=r=1N(Sr×rl=1rSl1+M×Xr).

很显然 xr 是可以通过扫描线求出的,只要维护一个树状数组即可。

F

题意

给你一棵有 N 个顶点的树。添加一条边可以得到一个基环树,问有多少种添边方案满足:

  • 图依然是简单图。
  • 循环中所有顶点的度数都是 3

分析

不难发现一种添边 (u,v) 方式满足题意当且仅当:

  • degu=degv=2
  • (u,v) 路径上的其他点 p 都满足 degp=3

可以记录一个 au 表示与 u 相连的度数为 2 的点的数量。先对每个 deg=3 的点算独立贡献,每新增一个度数为二的点贡献就是当前的 au。再合并不同的三度点,两个集合合并的贡献是 aU×aV,可以用并查集维护。

作者:tai-chi

出处:https://www.cnblogs.com/tai-chi/p/18524283

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   tai_chi  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示