![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
暑期训练
Henry_WYH
兴趣使然
展开
-
E. Cross Swapping
则需要交换,因此需要对操作i和操作j种正好一个操作一次。如果不需要换位置,那么i操作和j操作要么一个都没做,要么全都做了。的位置进行贪心讨论。从头开始逐行扫描,如果。这个剩下的就是带扩展域的并查集的模板题了。通过观察可以发现对于。...原创 2022-08-14 22:05:40 · 170 阅读 · 0 评论 -
积性函数学习&做题
中的一个数,两个环是不同的环当且仅当它们不能通过旋转使得两个环中对应的每个元素都相等。因为1e6以内分解质因数后最多的质数的指数为20.然后logn内分解并可以乘得答案。首先我们构造一个无限长的序列,假设此序列的周期为d,其中d为n的因子。个元组成一个环,每个元都是 1*,* 2*, …其中g(d)是可以轻松算出来的,总时间复杂度为。两个长度为 n 的序列 a, b,求满足。满足于任意一对互质的正整数p,q.都有。是两个函数,则它们的迪利克雷卷积为。的对 (x, y) 的数量。线性筛求n个数的正因子个数。.原创 2022-08-12 23:56:16 · 193 阅读 · 0 评论 -
2022牛客多校第三场
牛客多校第三场,逐渐填充题解原创 2022-07-25 21:52:39 · 144 阅读 · 0 评论 -
第16届东北四省赛题解
然后就是做一遍树型DP求出来每个点往下延申的最长深度,接着二分答案最小化的城市距离,一遍dfs,如果当前点到往下延伸的点的距离大于k意味着当前点也需要被选上,check最终选的点的数量是否...原创 2022-07-23 11:10:51 · 741 阅读 · 0 评论 -
ABC 260 [E - At Least One]
做法就是使用双指针,因为当[l,r]满足的时候,[l-1,r]或者[l,r+1]一定满足。所以我们固定左端点,然后找到第一个满足的右端点,然后计数。就是这个"满足"需要好好想一想。大意就是有一堆数A[1]…A[n]和B[1]…B[n],要求你计算1…m的连续子序列s的数量,满足对于i1~n都有。我们将每个位置对应的下标进行统计,当且仅当所有下标都被统计到的时候有[l,r]满足要求。...原创 2022-07-18 00:44:09 · 201 阅读 · 0 评论 -
E. Mark and Professor Koro
大意就是两个x可以合成一个x+1,问给定一堆数,然后每一次操作xd令a[x]=d,然后求出当前数所能造出来的最大数。重点是线段树上的函数,一开始写了两个log,就是二分再查,然后T了。方法就是维护一个很长的二进制数的每一位,a[x]=1表示x处可以被合成。然后模拟二进制上的加减法。我们可以发现首先要判断端点,然后如果要查最左边,就让左边先搜,否则就让右边先搜。...原创 2022-07-18 00:43:40 · 245 阅读 · 0 评论 -
CodeChef div4 (H) The XOR-OR Dilemma
构造的思路就是把所有的数全部或起来,然后和最终的数做异或得到tmp。然后用二进制拼接出tmp,用或操作,然后把剩下的没用到的数或起来最终两数异或便是答案。期间,特判不存在的解。然后将x,y移除并将新值插入。给定x,求使得最终剩下的值为x的方案。...原创 2022-07-18 00:43:08 · 114 阅读 · 0 评论 -
7.9 树上背包3
给你一个n(1≤n≤1000)n(1≤n≤1000)个点的有根树,其中1号点为根。你需要选择一个重量恰好kk的包含根的连通块,最大的权值和。对所有的k=0,1,2,…,m输出答案,其中1≤m≤1041≤m≤104。这一段的节点,选的重量和不超过j的点集的最大权值和。正好对应之后的那一个位置。...原创 2022-07-18 00:42:40 · 134 阅读 · 0 评论 -
E. Boring Segments
首先想的是二分,发现不可行。然后发现,当固定最小花费时,随着最小花费的增加,最大花费的最小值不减,因此我们利用这个单调性可以使用双指针算法。指针移动的条件是[1,m-1]这个区间没有被完全覆盖。对于这个扫描我的处理方法是用线段树维护区间最小值,懒标记更新区间加减,这样复杂度就是nlogm。大意是给定一堆{l,r,w}表示覆盖[l,r]需要w的花费。求能够完全覆盖[1,m-1]的最小的最大花费与最小花费之差。...原创 2022-07-18 00:41:43 · 97 阅读 · 0 评论 -
E. PermutationForces_II
我们不妨从较大的数的视角看,如果与小的数交换,意味着这个小的数与他交换完了之后就不会再交换他了,因此当前数与之前a数组中对应的数的差应当是在s范围之内的。因此第一步就是求出存在的b[i]和a[i]的最大差并与s进行比较并特判.给定一个integers和长度为n的排列a和其变换之后的数组b。可以的位置然后按照顺序(从选择最少的开始,即a最大的开始)然后把可以选择的数量乘起来即可。之后得到数组b,但是数组b有部分缺失,用-1代替。现求数组b可能的方案数。首先将数组b中缺失的元素按照升序排列,记作数组。...原创 2022-07-18 00:40:54 · 168 阅读 · 0 评论