随笔分类 - at_problems
摘要:E - Permute K times 2 思路 这题由于序列P是一个排列,所以将P表示成一个图的时候,这个图将由\(m\)个环构成 对于每个环上的点来说,第一回合它会移动到距离它为\(2\)的点上,距离它为\(2\)的点同时也以相同的方式移动,那么第二回合,它就会移动到距离它为\(4\)的点上,得
阅读全文
摘要:G - Add and Multiply Queries 思路 开始直接用的线段树,写完才意识到是假的 由于题目说答案不会超过\(10^{18}\),所以一个询问区间内的大于2的b的个数不超过64个,这样一个区间内大于2的b的就可以把a分成不超过64个连续的区间,用树状数组维护,b大于2的位置可以用
阅读全文
摘要:G - Road Blocked 2 思路 只有当一条边是从\(1\)到\(n\)的所有最短路构成的图的桥时,去掉这条边,最短路才会变大 怎么判断一条边是否可以构成最短路呢,比如求\(1\)到\(n\)的最短路,分别求出dist1(源点为1)和distn(源点为n),当一条边(端点分别为a,b,边长
阅读全文
摘要:F - Road Blocked 思路 \(n\)的范围很小,考虑用\(floyd\)算法,对查询进行倒序的离线处理,原题目的删边就变为了增加边,每次增加边更新仅为\(O(n^2)\) 代码 struct Edge{ int a,b,c; }; //离线处理,倒序进行,操作1就变为了加边操作,更新以
阅读全文
摘要:E - K-th Largest Connected Components 思路 由于要求求所求点第\(k\)大点,所以在每个点上开一个\(set\)就可以了,因为\(k\)小于\(10\)所以直接遍历取第\(k\)大就行了,当连接两点的时候,使用并查集维护,因为要合并,但直接合并会超时,所以使用启
阅读全文
摘要:abc365 E-Xor Sigma Problem 思路 本题首先可以想到用前缀异或和维护,我们记作\(b_i=a_1\oplus a_2 \oplus ··· \oplus a_i\),所求的式子就变成了\(\sum^{n-2}_{i=0}\sum^n_{j=i+2}b_i\oplus b_j\
阅读全文

浙公网安备 33010602011771号