首页 > 其他分享 >Codeforces Round 943 (Div. 3)

Codeforces Round 943 (Div. 3)

时间:2024-05-14 14:09:31浏览次数:20  
标签:-- 943 Codeforces 异或 数组 Div Round

Codeforces Round 943 (Div. 3)

1968D-枚举

思路:

每个人走的位置最多会形成长度为n的环,所以直接枚举走到某个位置之后后面就不走了的所有情况的最大值,相互比较即可

1968E-构造

题意:

设\(F(A_i,A_j)=|x_i-x_y|+|y_i-y_j|\),在\(N*N\)的矩阵中选n个点使所有不同的\(F(A_i,A_j)=|x_i-x_y|+|y_i-y_j|\)数量最多

1968F-枚举 二分

题意:

如果一个数组可以分成大于等于2的连续子数组,每个连续子数组的异或和都相等,那么这个数组叫做好数组

给一个长度为n的数组,给出q个询问,每次询问给出L,R,问能否数组\([L,R]\)是不是一个好数组

思路:

要算连续子数组的异或和,考虑用前缀异或和维护,

对于\([L,R]\)的数组,如果总的异或和是0,那么总能在中间找到一个分界点使左右两边相等,

如果总的不为0,那分出的字段应该是奇数个,不可能为偶数个,如果为偶数个总的异或和应该为0。如果为奇数个那么三个段其实就够了,因为如果分的段数大于3是可以变成3段的,比如五个段TTTTT,对于中间三个T,合并之后异或和为T,就变成了TTT,考虑三个段的情况,设第一段的右端点为X,第二段的右端点为Y,则整个序列为\(L--X--Y--R\)

那么L<=X<Y<R,如何找到X,Y的位置? 对于2、3段来说,总异或和为0,也就是说\(s[R]\oplus[X]==0\)即\(s[R]=s[X]\)

同理\(s[L-1]=s[Y]\),保存相同\(S[i]\)的下标然后二分查找

标签:--,943,Codeforces,异或,数组,Div,Round
From: https://www.cnblogs.com/Danc1ng/p/18191178/Codeforces-Round-943-div3

相关文章

  • div,span使用展示\n字符串是换行而不是空格
    当前接口返回值有时候包含‘\n’时,我们想让它展示成换行,但是经常展示成空格 处理方法:1,使用split(‘\n’)分割当前字符串,然后使用数组渲染,(麻烦)2,使用css属性 (方便)文档white-space:pre-line ......
  • cfRounddiv3--CDEF题解
    C-AssemblyviaRemainders思路:因为xi最大只有500,而构造的ai最大可以到1e9,直接从501开始构造即可。voidsolve(){//C简单构造intn;cin>>n;vector<int>vct;vct.emplace_back(501);for(inti=2;i<=n;i++){intx;cin>>x;vc......
  • Codeforces Round 944 (Div. 4) 补题
    A.MyFirstSortingProblemYouaregiventwointegersxandy.Outputtwointegers:theminimumofxandy,followedbythemaximumofxandy.题意:给你两个整数求出最小值和最大值Code:#include<bits/stdc++.h> usingnamespacestd;#definedebug(x)cer......
  • Codeforces 832E Vasya and Shifts
    考虑到这个操作实际上就是\(5\)进制的不进位加法,其实也就是\(5\)进制下的异或。同时因为是\(5\)进制,对于\(x\in[1,4]\),\(x\times0,\cdots,x\times4\)刚好可以表示出\(0\sim4\)。于是可以考虑类似\(2\)进制的线性基弄个\(5\)进制的线性基。即令\(w_i\)为......
  • Codeforces 1971H ±1
    考虑到因为只有\(3\)行,所以第\(2\)行为\(1\)的条件就是\(1\)的个数\(\ge2\)。对于这种只能去正负且有无解的问题,可以想到用个\(\text{2-SAT}\)。于是接下来考虑用\(\operatorname{AND},\operatorname{OR},\operatorname{XOR}\)来表示至少有\(2\)个\(1\)。考......
  • Codeforces 1761D Carry Bit
    令\(c_i\)为第\(i\)位带来的进位的值,令\(c_{-1}=0\)。考虑如果知道了\(c_{i-1},c_i\)的值,\(a_i,b_i\)有多少种选法:\(c_{i-1}=0,c_i=0\),\((a_i,b_i)=(0,0),(0,1),(1,0)\)。\(c_{i-1}=1,c_i=1\),\((a_i,b_i)=(1,1),(0,1),(1,0)\)。......
  • Codeforces 295D Greg and Caves
    首先可以只考虑有效的行(有黑格的),设有\(h\)行,那么就有\(n-h+1\)种分配方式,最后\(\times(n-h+1)\)即可。对于有效的行,发现如果要考虑中间的部分\([l,r]\)其实可以只用\(len=r-l+1\)来表示。当然肯定会漏掉一些方案的,但考虑知道了\(\max\{len\}\)之后,......
  • Codeforces 1146D Frog Jumping
    首先根据裴蜀定理,能走到的点\(x\)肯定满足\(\gcd(a,b)|x\)。于是令\(g=\gcd(a,b)\),可以考虑求解\(\lfloor\frac{m}{g}\rfloor,\frac{a}{g},\frac{b}{g}\),最后记得去判一下\([g\lfloor\frac{m}{g}\rfloor,m]\)这个区间,因为只有这个区间是不满(区间长度可能\(<g\)......
  • CF1787H Codeforces Scoreboard
    CF1787HCodeforcesScoreboard校内测试的一道题,考试时根本没动。。题面考虑\(k\)比较大的放前面肯定优,然后修门挨着放也肯定优,所以先按\(k\)排个序,然后我们就只考虑每个门修不修。设计状态\(f[i][j]\)表示前\(i\)个点,有\(j\)个门取\(b-kt\),少送回去的最少......
  • css border-radius 如何设置不占div宽度,向外突出
    在CSS中,border-radius用于创建元素的圆角边框,但边框圆角本身是包含在元素的总宽度和高度内的,并不会额外占用外部空间或使元素尺寸变大。如果你想让圆角“向外突出”,即不占用div本身的宽度和高度,可以通过一些技巧来模拟这种效果。一种常见的方法是使用伪元素(::before和::afte......