2026/6/20 4:05:06
网站建设
项目流程
怎么做百度自己的网站空间,百度seo培训课程,海外推广平台有哪些,襄樊seo排名F. Daniel and Spring Cleaning
二进制数位dp 位运算trick
加起来等于异或#xff0c;意味着两个数的交等于零。数位dp同时维护两个数的二进制位取什么即可#xff0c;同时为1无法转移#xff0c;别的都可以转移
D. Locked Out
调和级数 [ k x , ( k 1 ) x ) [kx,(k…F. Daniel and Spring Cleaning二进制数位dp 位运算trick加起来等于异或意味着两个数的交等于零。数位dp同时维护两个数的二进制位取什么即可同时为1无法转移别的都可以转移D. Locked Out调和级数[ k x , ( k 1 ) x ) [kx,(k1)x)[kx,(k1)x)之间的数都会变成k x kxkx我们枚举x xx枚举x xx的所有倍数然后前缀和统计每一个[ k x , ( k 1 ) x ) [kx,(k1)x)[kx,(k1)x)里有多少个数字就能计算出一个x xx的s u m ( a ) sum(a)sum(a)。整体是一个调和级数枚举E. Stairs and Lines分段矩阵快速幂 状压 dp预处理系数转移是一个d p dpdp因为每一列的右边界的选择之和这一列的左边界有关是无后效的故用一个m a s k maskmask表示第i ii列的右边界我们可以枚举这一列的左边界进行转移确定了左边界还是可以有多种转移还要考虑这一列的中间的横边的情况最暴力的就是继续枚举但把这个问题抽象出来我们确定了左右两个m a s k maskmask中间每个横边可选可不选问多少种方案使得没有一个格子有四条边显然可以d p dpdp解决。每一段的高度相同转移都是相同的考虑快速幂加速转移转移矩阵的每个位置对应两个m a s k maskmask分别表示这一列的左右边界的情况接下来跑一个d p dpdp即可求出这个情况的方案数也就是转移系数。但是有多段两段交界处列高变了需要重新构造状态向量和转移矩阵利用前一段的结果即可构造。初态和末态都是m a s k maskmask全一E. Okabe and El Psy Kongroo分段快速幂仍然分段进行快速幂同时转移就是朴素的网格图路径问题比较简单C. Vasya and Basketball枚举把两队的所有距离一块排序显然两个元素中间的区间取任何值结果都是一样的所以需要枚举的距离只有O ( n m ) O(nm)O(nm)E. Power of Points扫描线 前缀和看成有多条线段共享一个端点每次把这个端点移动一下求线段长度和类似于扫描线前缀和的思想维护两侧的线段个数和线段和移动可以O ( 1 ) O(1)O(1)更新线段和D. Right Left Wrong贪心每次选一个区间消掉获得区间和。每次选最左侧L LL和最右侧R RR是最优的。如果[ L 1 , L 2 , R 1 , R 2 ] [L_1,L_2,R_1,R_2][L1,L2,R1,R2]这样配对两个区间有交集消除完一个区间后另一个就不能消除了不如[ L 1 , R 2 ] [L_1,R_2][L1,R2]优如果[ L 1 , R 1 , 0 , 0 , 0 , L 2 , R 2 ] [L_1,R_1,0,0,0,L_2,R_2][L1,R1,0,0,0,L2,R2]两个各自配对中间这一段0 00的元素值则无法加入不如[ L 1 , R 2 ] [L_1,R_2][L1,R2]优相向双指针分别从开头结尾开始维护下一个L , R L,RL,R即可