首页 > 其他分享 >AT_abc328_f [ABC328F] Good Set Query 题解

AT_abc328_f [ABC328F] Good Set Query 题解

时间:2024-03-07 13:15:36浏览次数:22  
标签:Set 题解 ABC328F Good 集合 Query abc328

分析

考虑并查集。

对于 \(a_i,b_i,d_i\),若 \(a_i,b_i\) 在之前的满足要求的操作中,\(a_i,b_i\) 不在同一个集合里,则在之前 \(X_{a_i},X_{b_i}\) 的相对差值是可以任意改变的。令 \(k=X_{a_i}-X_{b_i}\),则我们需要将 \(a_i\) 所在集合中所有元素的值增加 \(d_i-k\)。然后将 \(a_i,b_i\) 所在集合合并。

很显然,对于将集合中所有元素增加一定值再与另一个集合合并的操作,可以按秩合并修改两个集合中包含元素数量少的那个。这个暴力处理即可。

同理,在 \(a_i,b_i\) 在同一个集合里时,由于其相对差值已经确定,只需要看 \(X_{a_i}-X_{b_i}\) 是否与 \(d\) 相等。

代码

Link.

标签:Set,题解,ABC328F,Good,集合,Query,abc328
From: https://www.cnblogs.com/harmisyz/p/18058642

相关文章

  • CF1895D XOR Construction 题解
    分析对于异或,有性质\(a\oplusb=c,a\oplusc=b,a\oplusa=0\)。则对于\(a_i\oplusa_{i+1}\),其表示的结果就是\(b_{i}\oplusb_{i+2}\)。做一个前缀异或和,就能够得到\(b_1\)与\(b_2,b_3,\dots,b_n\)的异或结果。考虑枚举\(b_1\),因为在有解的情况下\(b_1\op......
  • Android hexedit toybox tcsetattr /dev/pts/0: Permission denied
    cas:/$/data/local/tmp/toybox-aarch64hexedit/data/local/tmp/tree.statichexedit:tcsetattr/dev/pts/0:Permissiondenied 好像是不能用tcsetattr,selinux会拒绝 cas:/$ls-l/dev/ptsls:/dev/pts:Permissiondenied https://blog.zhanghai.me/fixing-line-e......
  • CF1896D 题解
    Solution令\(l,r\)能使\(\sum\limits_{i=l}^{r}a_i=S\)。考虑先令\(l=1\),那么如果存在\(\sum\limits_{i=1}^{r}=S\),即输出YES。如果没有,则一定有\(\sum\limits_{i=1}^{r}=S-1\),且\(a_{r+1}=2\)。考虑对\(l,r\)进行调整:将\(l\)向左移,\(r\)向右移。可以发现当\(......
  • AT_abc222_f [ABC222F] Expensive Expense 题解
    分析没脑子的题目。一眼换根DP。定义\(\mathit{f}_{i}\)表示\(i\)到\(i\)为根子树中某一个节点的距离最大值;\(\mathit{g}_{i}\)表示\(i\)经过其父节点到某个节点的距离最大值。那答案就是\(\max(\mathit{f}_i,\mathit{g}_i)\)。考虑转移。\(\mathit{f}_i\)的转移很......
  • CF1223F Stack Exterminable Arrays 题解
    分析接着这个说。现在我们需要优化\(\mathit{nxt}_{i}\)。重新定义一下,\(\mathit{nxt}_{i,j}\)表示在后\(i\)个数中,\(j\)第一次出现的位置,且\([i+1,\mathit{nxt}_{i+1,a_i}-1]\)是一个合法串。这玩意很像一个DP,所以完全可以按照DP的转移思路转移:\(\mathit{nxt}_{i,j}=......
  • CF514D R2D2 and Droid Army 题解
    分析乱搞题。考虑将区间\([l,r]\)中所有人干掉的代价。设\(cnt_{i}=\max\limits_{j=l}^{r}a_{j,i}\),则代价为:\(\sum\limits_{i=1}^{m}cnt_i\)。很显然,只有在\(\sum\limits_{i=1}^{m}cnt_i\lek\)是,我们才能将这些人全部干掉。考虑枚举右端点\(r\),与每个\(r\)对应的最......
  • P4863 题解
    Solution为了方便,我们定义\(f_n=\sum_{i=1}^{n}\sum_{j=i}^{n}\lfloor\frac{i}{j}\rfloor\times(-1)^j\)。于是答案即为\(f_b-f_{a-1}\)。观察到如果我们直接计算这个式子而不做丝毫变形的话时间复杂度是\(O(n^2)\)的。考虑把先枚举\(j\),计算\(j\)的贡献。此时就有......
  • CF1066E Binary Numbers AND Sum 题解
    分析因为\(a\)是一直没有改变的,移动的只有\(b\),所以从\(a\)的每一位的贡献入手。对于\(a\)中的从低到高第\(i\)位,其对应的十进制值是\(a_{n-i+1}\times2^{i-1}\)。注意到\(b\)是每次右移一位的,所以在\(b\)中能与\(a_{n-i+1}\)匹配的都是在下标区间\([1,m-i+1]......
  • ABC263F 题解
    Solution考虑\(f_{i,j}\)表示第\(i\)个人赢下了第\(j\)场的最大价值,答案即为\(\max_{i=1}^{n}f_{i,m}\)。然后考虑状态转移,令\(l,r\)为第\(i\)个人在打第\(j\)场比赛时的区间,\(mid\)为区间中点,然后分为两种情况:第\(i\)个人在左半部分,转移即为\(f_{i,j}=f_{i......
  • P9757 [COCI2022-2023#3] Dirigent 题解
    分析对于一个从小到大(按编号排序)的长度为\(n\)的序列\(A\),有性质:相邻两个数之差的绝对值为\(1\)的数量为\(n-1\)。那么,对于这道题,能使环剪开一条边使其按编号排序,必有相邻两个\(i,j\),满足\((A_i-A_j=1)\)的数量为\(n-1\)。注意,因为这是个环,所以\(i,j\)大小关系不能......