首页 > 其他分享 >CF1896D Ones and Twos 题解

CF1896D Ones and Twos 题解

时间:2023-12-01 17:15:21浏览次数:36  
标签:CF1896D le 题解 sum 当且 区间 Ones 一定 有解

题意:

思路:

  • 先考虑不带修:

如果长度为 $ n $ 的序列 $ a $ 中无 $ 1 $ ,当且仅当 $ 2 \le s \le sum(1,n) $ 时,一定有解;否则,一定无解。

通过 $ set $ 维护序列 $ a $ 中每个 $ 1 $ 的位置,找到最靠左的 $ 1 $ 的位置 $ l $ 以及最靠右的 $ 1 $ 的位置 $ r $ 。

对于区间 $ [l,n] $ ,由于 $ a_i $ ∈ \(\{\) \(1,2\) \(\}\) ,那么该区间的子串所能取到的元素总和为 $ [1,sum(l,n)] $ 。当$ 1 \le s \le sum(l,n) $ 时,一定有解。

对于区间 $ [1,r] $ ,由于 $ a_i $ ∈ \(\{\) \(1,2\) \(\}\) ,那么该区间的子串所能取到的元素总和为 $ [1,sum(1,r)] $ 。当 $ 1 \le s \le sum(1,r) $ 时,一定有解。

当 $ sum(l,n) \ge sum(1,r) $ 且 $ s > sum(l,n) $ 时,当且仅当 $ s $ $ = $ \(sum(l,n)\) \((\) \(mod\) \(2\) \()\) 且 $ s \le sum(1,n) $ 时,一定有解;否则,一定无解。

当 $ sum(1,r) \ge sum(l,n) $ 且 $ s > sum(1,r) $ 时,当且仅当 $ s $ $ = $ \(sum(1,r)\) \((\) \(mod\) \(2\) \()\) 且 $ s \le sum(1,n) $ 时,一定有解;否则,一定无解。

  • 考虑带修:

通过 $ set $ 维护序列 $ a $ 中每个 $ 1 $ 的位置即可。

标签:CF1896D,le,题解,sum,当且,区间,Ones,一定,有解
From: https://www.cnblogs.com/ShawyYum/p/17870467.html

相关文章

  • ABC270F 题解
    和博客园一样好的体验思路首先看到花最小代价使得所有点连通,果断转换成最小生成树问题。接下来就要考虑怎么建图,首先陆地就正常连不用说,建机场和港口的代价貌似都是点权,考虑转成边权。因为一个点飞或者划船到另一个点要两重代价,所以若我们想让\(u\)和\(v\)建能飞过去的边,我......
  • P6859 蝴蝶与花 题解
    题意:有一个长度为$n$的序列$a$,其中所有元素都为$1$或$2$,要求进行$q$次操作,每次操作为以下之一:$A$$s$:询问是否存在$a$的连续子序列满足其中元素总和为$s$,若有合法的方案,输出这个方案的左右端点位置(多种方案时输出左端点最小的方案),否则输出$......
  • CF1835D Doctor's Brown Hypothesis 题解
    题目链接点击打开链接题目解法首先只有在一个强联通分量里的点对才可能合法,因此我们这里说的图默认为强联通图但是上面的条件成立只需要满足\(k\gen\),考虑用好\(k\)可以认为是极大的性质所以说我们可以通过图中所有的环\(+\)路径来凑出\(k\)不难发现,所有的环能构成的......
  • CF249题解
    CF249linkCF249ElinkCF249E题意给你一个形如下图的矩阵并有\(T\)组询问每组询问给出\(x_1,y_1,x_2,y_2\)。求\(\sum_{i=x_1}^{x_2}\sum_{j=y_1}^{y_2}A[i][j]\)。其中\(A[i][j]\)表示在矩阵中的数。\(T\leq10^5\)\(1\leqx_1\leqx_2\leq10^9\)\(1\leqy_1......
  • P7110 晚秋绝诗 题解
    好有意思的题目啊。出题人太厉害了。思路考虑一个结论:我们将两个没插旗的点与中间的点称为一段,其中中间的点必须全部插旗。那么这一段如果已知两座山的高度,就一定可以得知所有的高度。考虑为什么。加入这一段是\(a\simb\)。\[\begin{cases}h_a+h_{a+2}=2\timesh_{a+1}......
  • Advent of Code 2023题解 [Mathematica/Python]
    Day1Part1(*读取文件*)lines=ReadList["E:\\ExplorerDownload\input.txt",String];(*计算校准值*)calibrationValues=ToExpression[StringJoin[#[[1]],#[[-1]]]]&/@(StringCases[#,DigitCharacter]&/@lines);(*打印总和*)Pri......
  • Viola-Jones 人眼检测算法+meanshift跟踪算法
    clc;clearall;closeall;clfreset;%%%%%%%%%%%%%%%%%%%%%%%%%%--------人眼检测部分开始---------------------%%%%%%%%%%%%%%%%%%%%%%videoObj=VideoReader('eye.mp4');%读视频文件nframes=get(videoObj,'NumberOfFrames');%获取视频文件帧个数img=read(video......
  • CF1198题解
    CF1198CodeforcesRound576(Div.1)CF1198AlinkCF1198A题意有一种数字化一段录音的常用方式,是记录每一个时刻的强度值。这些非负的强度值就可以代表一段音频对于一段音频,若有\(K\)个不同的强度值,那么每一位我们都需要\(k=\lceil\log_2K\rceil\)\(\text{bit}\)来存......
  • [AGC052B] Tree Edges XOR 题解
    题目链接点击打开链接题目解法怎么感觉这场\(B\)比\(C\)思维量更大考虑一步很妙的操作:把边权变成点权,以达到简化操作的目的使每条边的边权为两端点的异或和,手画一下可以发现,操作简化成了交换两端点的点权我们定义\(d_{1/2,i}\)定义为在\(1/2\)树上,\(i\)到根的权值......
  • CF1684题解
    CF1684CodeforcesRound792(Div.1+Div.2)CF1684AlinkCF1684A题意有一个用十进制表示的没有前导零的正整数\(n\)。Alice和Bob正在用这个数玩一个游戏。Alice先手,他们轮流进行游戏。在她的这一轮中,Alice应该交换这个数中的任何不同位置的两位。轮到Bob时,他每次......