原创
2022-02-06 14:14:31
14 阅读
原创
2022-02-06 14:14:31
41 阅读
原创
2022-02-06 14:14:31
18 阅读
LINK已知bib_ibi和bjb_jbj,若bi+(j−i)<bjb_i+(j-i)<b_jbi+(j−i)<bj肯定无解,因为每个元素都入栈仍无法满足存在bjb_jbj个元素所以可以发现,在相邻的bi,bjb_i,b_jbi,bj之间的元素都加进去比较好如果在bjb_jbj处发现多了,可以构造一个aja_jaj弹出适量元素,但是少了就直接无解了.于是为了方便,我们构造bi+1=bi+1b_{i+1}=b_i+1bi+1=bi+1初始设一个栈,栈中存放
原创
2022-02-06 14:14:30
11 阅读
LINK考虑不管怎么交换,设最后的数组为aaa数组考虑绝对值的含义,aia_iai和bib_ibi一定有一个被加上,一个被减去那么如果不固定kkk的取值,最优情况相当于把a,ba,ba,b数组合并排序一下前nnn大的数就把正号赋给他们,后面nnn个数就把负号赋给他们,这样是最优的所以考虑一对(ai,bi)(a_i,b_i)(ai,bi),在最优解中被赋的正负号不同,那么就不需要管.因为这种情况下较大的那个数被赋的一定是正号,较小的那个数被赋的一定是正号于是我们只需要考虑哪些ai,bia_
原创
2022-02-06 14:14:28
41 阅读
题意给出nnn个人,再给出mmm对好友关系,每个人都有一个朋友圈用来显示微信步数。朋友关系不具备传递性现在有qqq次操作,每次操作会让某个人的微信步数增加,问最后对于每个人来说,在自己朋友圈内获得冠军的时间因为权值在[0,10000][0,10000][0,10000]的范围内,直接倒序枚举权值设点uuu在第timtimtim秒达到权值valvalval,并在此权值下维持了zzz秒冠军那么z=max(0,min (lasu,min(u−>v){fv})−tim)z=\max
原创
2022-02-06 14:14:27
14 阅读
原创
2022-02-06 14:14:27
16 阅读
原创
2022-02-06 14:14:26
2 阅读
LINK先dfsdfsdfs一遍求出rrr数组使得w[i]=z[i]⊕w[1]w[i]=z[i]\oplus w[1]w[i]=z[i]⊕w[1]于是现在就是找到xxx解的数量,对于i∈[1,n]i\in[1,n]i∈[1,n]都有x⊕zi∈[li,ri]x\oplus z_i\in[l_i,r_i]x⊕zi∈[li,ri]那么对于每个点iii都有一个合法xxx的集合,对于每个点求一遍然后求交即可可以把[li,ri][l_i,r_i][li,ri]拆为若干个区间,这些区间的前缀固定,左端点
原创
2022-02-06 14:12:30
23 阅读
原创
2022-02-06 14:12:30
13 阅读
原创
2022-02-06 14:12:29
14 阅读
原创
2022-02-06 14:12:29
29 阅读
原创
2022-02-06 14:12:28
14 阅读
原创
2022-02-06 14:12:28
26 阅读
原创
2022-02-06 14:12:28
16 阅读
原创
2022-02-06 14:12:27
19 阅读
原创
2022-02-06 14:12:27
12 阅读
LINK有2n2^n2n个点,编号为[0,2n−1][0,2^n-1][0,2n−1]每个点要么标记为000,要么标记为111我们说uuu和vvv相邻,当且仅当u,vu,vu,v的二进制恰有一位不同你需要给每个点构造一个标记,使得对任何一个点uuu,与uuu相邻且标记相同的点数不超过n\sqrt nn其中n<=22n<=22n<=22注意到相邻的两个点二进制中111的个数刚好相差111我们让二进制奇数个111的点都标记为000二进制偶数个111的点都标记为111那么这
原创
2022-02-06 14:12:26
32 阅读
LINK考虑在点xxx处爆发[l,r][l,r][l,r]的瘟疫且x∈[l,r]x\in[l,r]x∈[l,r]考虑xxx往上延伸,节点温度不断上升,所以往上的节点不需要考虑下界lll的限制显然可以倍增到一个深度最浅的节点vvv满足tv<=rt_v<=rtv<=r,再往上的节点都不符合要求又因为vvv子树内的节点温度都小于tvt_vtv,显然不需要考虑上界rrr的限制问题转化为,求出vvv的子树内有多少节点的温度大于等于lll这个东西可以线段树合并保存每个节点的子树内温度为
原创
2022-02-06 14:12:26
11 阅读
LINK有2n2^n2n个点,编号为[0,2n−1][0,2^n-1][0,2n−1]每个点要么标记为000,要么标记为111我们说uuu和vvv相邻,当且仅当u,vu,vu,v的二进制恰有一位不同你需要给每个点构造一个标记,使得对任何一个点uuu,与uuu相邻且标记相同的点数不超过n\sqrt nn其中n<=22n<=22n<=22注意到相邻的两个点二进制中111的个数刚好相差111我们让二进制奇数个111的点都标记为000二进制偶数个111的点都标记为111那么这
原创
2021-08-29 17:00:05
103 阅读
原创
2021-08-29 17:00:03
36 阅读
LINK考虑在点xxx处爆发[l,r][l,r][l,r]的瘟疫且x∈[l,r]x\in[l,r]x∈[l,r]考虑xxx往上延伸,节点温度不断上升,所以往上的节点不需要考虑下界lll的限制显然可以倍增到一个深度最浅的节点vvv满足tv<=rt_v<=rtv<=r,再往上的节点都不符合要求又因为vvv子树内的节点温度都小于tvt_vtv,显然不需要考虑上界rrr的限制问题转化为,求出vvv的子树内有多少节点的温度大于等于lll这个东西可以线段树合并保存每个节点的子树内温度为
原创
2021-08-29 17:00:01
91 阅读
原创
2021-08-27 09:50:33
79 阅读
原创
2021-08-27 09:47:22
50 阅读
LINK考虑不管怎么交换,设最后的数组为aaa数组考虑绝对值的含义,aia_iai和bib_ibi一定有一个被加上,一个被减去那么如果不固定kkk的取值,最优情况相当于把a,ba,ba,b数组合并排序一下前nnn大的数就把正号赋给他们,后面nnn个数就把负号赋给他们,这样是最优的所以考虑一对(ai,bi)(a_i,b_i)(ai,bi),在最优解中被赋的正负号不同,那么就不需要管.因为这种情况下较大的那个数被赋的一定是正号,较小的那个数被赋的一定是正号于是我们只需要考虑哪些ai,bia_
原创
2021-08-27 09:47:20
45 阅读
题意给出nnn个人,再给出mmm对好友关系,每个人都有一个朋友圈用来显示微信步数。朋友关系不具备传递性现在有qqq次操作,每次操作会让某个人的微信步数增加,问最后对于每个人来说,在自己朋友圈内获得冠军的时间因为权值在[0,10000][0,10000][0,10000]的范围内,直接倒序枚举权值设点uuu在第timtimtim秒达到权值valvalval,并在此权值下维持了zzz秒冠军那么z=max(0,min (lasu,min(u−>v){fv})−tim)z=\max
原创
2021-08-27 09:47:18
76 阅读
LINK已知bib_ibi和bjb_jbj,若bi+(j−i)<bjb_i+(j-i)<b_jbi+(j−i)<bj肯定无解,因为每个元素都入栈仍无法满足存在bjb_jbj个元素所以可以发现,在相邻的bi,bjb_i,b_jbi,bj之间的元素都加进去比较好如果在bjb_jbj处发现多了,可以构造一个aja_jaj弹出适量元素,但是少了就直接无解了.于是为了方便,我们构造bi+1=bi+1b_{i+1}=b_i+1bi+1=bi+1初始设一个栈,栈中存放
原创
2021-08-27 09:47:16
46 阅读
原创
2021-08-27 09:47:12
74 阅读
原创
2021-08-27 09:47:10
36 阅读
原创
2021-08-27 09:45:16
38 阅读