首页 > 其他分享 >CF1678题解

CF1678题解

时间:2024-11-20 11:11:05浏览次数:1  
标签:相等 二元 对于 题解 CF1678 第一行 答案 我们

CF1678A

小清新签到题,有0其余全与0合并,有相等的数先变为0再与0合并,没有相等的数先花1的代价合并为相等的数

CF1678B

因为最后对于一个合法的串,要求连续段长度为偶数,所以,我们只关心一个偶数位二元组 \((1,2),(3,4) \dots\) 两个对应的数是否相等

若不相等,我们只能把这个数对全改为0/1,但是我们并不知道怎么改更优

若相等,这个对就是不能改变的,因为把两个数都改变一定不优

所以对于第一问的答案,我们观察有多少个不相等的对即可

对于第二问的答案,我们会把中间不相等的段都改成其左或其右一段相等的段的数值,所以对于两个相邻的相等的二元组,若相同则对答案没有贡献,若相等则有1的贡献

特殊的,对于第一个相等的二元组也对答案有1的贡献,若所有二元组都不相等则整个串必须变为一个相等的0/1,所以答案为1

CF1678C

预处理题

我们考虑若只枚举b,c那么答案既是在 \((1,b-1)\) 之中比 \(p[c]\) 小的数乘上\((c+1,n)\)之中比 \(p[b]\) 小的数,我们先预处理出比 \(p[i]\)小的数的前缀和和后缀和,就可以 \(O(n^2)\) 求解了

CF1678D

挺好玩的一道题

首先行和列分开考虑,不用算什么容斥(我没有想出来)

考虑一列,来一个人并不会影响之前的人在列上的相对位置关系,只要这个列上以前没有1,现在有了,对于这一列的影响就会一直保存下去

考虑一行,虽然来一个人会影响一行的人数,但考虑如果进入m个学生之后,它的行的答案只与第一行有关

所以我们存一下对于每一行当余数为(0,m-1)时所对应的行数再加上第一行有没有数即可,如何判断第一行有没有,存一下上一次出现1的时间,若时间小于m则第一行存在1,在更新一下对应的答案值即可

最后答案为行列答案加和

标签:相等,二元,对于,题解,CF1678,第一行,答案,我们
From: https://www.cnblogs.com/zcxnb/p/18555992

相关文章

  • [CodeForces] CF558 题解
    注:难度评级为D到A,对标NOIPT1到T4。+表示比原本难,-反之。例如,D+比D难。难度评级仅供参考。如果认为难度评级与实际难度不符,可以在评论区@我进行讨论。本篇题解无复杂的公式推导,题目较清新自然,请放心食用。斜体字为说明提示。通常与多倍经验有关。A.LalaLandand......
  • 20241120 校内模拟赛 T3 题解
    题目描述给定一个数列\(A\),数列的元素取值范围为\([1,m]\)。请计算有多少个非空子区间满足以下条件:该区间内每个元素的出现次数都相同(没有出现的元素视为出现\(0\)次)。例如,当\(m=3\)时,\([1,2,3]\)和\([1,1,3,2,3,2]\)是满足条件的区间,而\([1,2,2,3]\)和\([1,1,3,3]......
  • Luogu P9869 NOIp2023 三值逻辑 题解 [ 绿 ] [ 带权并查集 ]
    三值逻辑:有点坑并且细节较繁琐,但有点板子的并查集。修改操作发现对于每个点,只有对他的最后一次操作才是有用的,所以记录下最终的祖先即可。然而这里并不能用并查集来实现,因为并查集它具有的是传递性,无论你路不路径压缩,每次修改一个父节点时它的子节点一定会被修改,所以我们不能使......
  • CF2037E 题解
    CF2037E题解题意给定一个长度为\(n\)的\(01\)串,定义\(f(l,r)\)为\(l\)到\(r\)区间内\(01\)子序列的数量,通过最多\(n\)次交互,确定这个\(01\)串的构成。分析可以从莫队的思想,也就是增量,来思考如何解决。如果说我们已经知道了\(f(l,r)=ans\),接下来我们询问......
  • CF 1253 题解
    CF1253题解ASinglePush考虑令\(d_i=b_i-a_i\),那么合法当且仅当\(d\)在一个前缀和一个后缀都是\(0\),其余地方值一致并且非负.BSillyMistake注意到能作一次划分的时候立即划分一定更优,因为这样就不会因为潜在的一天两次进入办公室而得不到答案.贪心的模拟即可.......
  • 2024年全国职业院校技能大赛中职组《大数据应用与服务赛项》赛项赛题解析第三模块
      职业院校技能大赛大数据应用与服务交流群:q743959419目录模块三:数据分析与可视化任务一:数据分析与可视化子任务一:柱状图数据分析与可视化子任务二:折线图数据分析与可视化子任务三:饼图数据分析与可视化子任务四:雷达图数据分析与可视化任务二:数据分析子任务一:Excel......
  • Public NOIP Round #6 D 排序 题解
    Description今天是YQH的生日,她得到了一个\(1\simn\)的排列作为礼物。YQH是一个有强迫症的女孩子,她希望把这个排列从小到大排序,具体的,她可以进行这样的操作:把\([1,n]\)分成若干个区间,假如是\(m\)段,依次为\([l_1,r_1],[l_2,r_2],\dots,[l_m,r_m]\),其中\(l_1=1,r_m=......
  • 【题解】洛谷:P4805 [CCC2016] 合并饭团
    P4805[CCC2016]合并饭团希望写完这篇题解能真正地会这种题。合并两个的操作很像合并石子的操作,确实直接那么做就可以,但三个怎么办呢,暴力做法就是枚举中间两个端点然后转移,但是这样复杂度太大了有\(O(n^4)\)。于是搬出我们的双指针,在面对区间问题时双指针可以有效地解决问题,......
  • UOJ918 【UR #28】偷吃蛋糕 题解
    题目描述\(n\)层蛋糕,第\(i\)层大小\(c_i\),保证\(c_i\)单调不增。初始你有第\(1\)层蛋糕,然后重复以下操作,直至没有蛋糕:吃掉最大的一层蛋糕,记其大小为\(x\)。如果还有至少\(x\)层蛋糕没有给你,主办方会按编号升序给你接下来的\(x\)层蛋糕。如果只有\(y\)层蛋......
  • C -- [vs2019] C2440 错误,无法从 const char[] 转换为 char*问题解决
    https://blog.csdn.net/weixin_45525272/article/details/118699716原因新标准中,不能把指针指向一串常量解决方案一:引入[]char*str=“helloworld”;改成:charstr_tmp[]=“helloworld”;char*str=str_tmp;方案二:加constchar*str=“helloworld”;改成:......