专栏文章

题解:P12014 [Ynoi April Fool's Round 2025] 牢帽

P12014题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minci8oj
此快照首次捕获于
2025/12/02 00:10
3 个月前
此快照最后确认于
2025/12/02 00:10
3 个月前
查看原文

P12014 [Ynoi April Fool's Round 2025] 牢帽

Problem

星野加奈给你一个 nn 个点的无向图,图初始没有边。他还有整数 u,vu,va1,a2,,ana_1,a_2,\cdots ,a_n。现在有 qq 次操作,操作有四种:
  1. 1 x y :连接 x,yx,y 之间的边,保证边原先不存在。
  2. 2 x y :删除 x,yx,y 之间的边,保证边原先存在。
  3. 3 x y :将 axa_x 修改为 yy
  4. 4 x :设图分为 C1,C2,,CkC_1,C_2,\cdots ,C_kkk 个连通块,求出 i=1kjCi(aj+x)moduv\sum_{i=1}^k \prod_{j\in C_i}(a_j+x) \bmod u^v
1n,q105,1u10,1v4,0ai<1041\leq n,q\leq 10^5,1\leq u\leq 10,1\leq v\leq 4,0\leq a_i <10^433 操作中 yy44 操作中 xx 均为小于 10410^4 的非负整数。
时间 3s,空间 512MB。

Solution

一种可能不太一样的口胡做法。欢迎大家指错。
对于动态加删边、维护连通块信息,可以使用线段树分治进行维护。
发现 u10u\le 10,也就是说小于 uu 的质数只有 2,3,5,72, 3, 5, 7。并且次数也很小。
对每个连通块,记录其在模 2,3,5,72, 3, 5, 7 意义下的每个余数的数量。查询 +x+x 时,只需要知道余数为 x-x 的个数。但是这样没有办法知道 2,3,5,72, 3, 5, 7 的个数究竟有多少个(eg:7+1=237+1=2^3)考虑在个数比较少的时候直接记录数的集合。然后由于 u,vu, v 在开头就给定了,所以不用把每个数的数量都维护满,最大的时候是 u=10,v=4u=10, v=4,此时需要维护 4×2+5×5=334\times 2 + 5\times 5=33 个数。然后最劣的情况就是 uu 是一个质数,所以维护的数的量级是 O(uv)O(uv) 的。
时间复杂度:O(quvlogqlogn)O(quv \log q \log n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...