首页 > 其他分享 >【题解】CF1982

【题解】CF1982

时间:2024-11-14 21:00:02浏览次数:1  
标签:题解 复杂度 前半段 即可 注意 后半段 CF1982 区间

A

  • 考虑两队的领先情况改变,那么一定有某一时刻两队的比分相等
  • 于是首先检查最开始的领先队伍,再检查现在的领先队伍,如果前后不同,则 \(YES\),否则 \(NO\)

B

  • 注意到当 \(x=1\),则会进入循环,手模一下发现 \(ans=k\%(y-1)+1)\)
  • 现在的问题是:什么时候 \(x=1\)?直接手动模拟即可,不难证明时间复杂度 \(O(n)\)

C

  • 首先简化题意:在一个数列中划分出若干个不相交的子区间,并保证区间和在 \(min\) 到 \(max\) 之间,求最多可划分出多少个这样的区间。
  • 注意到对于每个 \(i\),可转移的点是一个区间 \([l,r]\)
  • 注意到,转移区间的 \(l\) 和 \(r\) 都是单调不减的,所以双指针维护即可

D

  • 首先注意到 \(c\) 其实并不重要,全当 \(1\) 看即可
  • 其次注意到这题里的正负也不重要
  • 然后注意到这题实际上每个大小为 \(k\times k\) 的矩形都是一个数,我们要用这些数凑出 \(0\) 点上的和与 \(1\) 点上的和的差值
  • 然后注意到 \(k\times k\) 矩形的贡献二位前缀和秒了
  • 然后注意到这玩应变成裸的裴蜀定理,所以一套 \(\gcd\) 搂过去就做完了

E

  • 注意到 \(n\leq 10^{18}\),大胆猜测复杂度关于 \(n\) 是 \(\log\) 的
  • 设答案为 \(f_{n,k}\)
  • 设 \(c\) 为最大的小于 \(n\) 的全 \(1\) 二进制数的位数,这个 \(\log\) 的复杂度就能求出来
  • 要求 \(f_{i,j}\) 只需求出 \(f_{2^c,j}\) 和 \(f_{i-2^c,j-1}\)
  • 前半段没什么好说的,后半段是因为最高位肯定是 \(1\)
  • 然后我们要求跨中间的区间个数
  • 如果前半段 \(j>k\),那没得玩了,直接 \(0\)
    否则前半段每个位置都合法,因数:\(2^c\)
    • 显然后半段的长度严格不大于前半段,且只有最后一位可以取满所有的 1,也就是说后半段的因数是 \(\min(n-2^c,2^c-1)\)
    • 乘起来即为中间段贡献

F

  • 首先考虑维护最长不降前缀和最长不降后缀,线段树即可
  • 但是可能出现前缀的最大值比后缀最小值还小的情况
  • 也就是说我们需要在这个基础上将排序区间扩展
  • 扩展到什么地方呢?二分即可
  • 所以线段树需要再维护一个区间最值

标签:题解,复杂度,前半段,即可,注意,后半段,CF1982,区间
From: https://www.cnblogs.com/yeyou26/p/18546799

相关文章

  • Intellij IDEA如何设置中文版?安装中文汉化包插件?失败问题解决!
    前言大家好,我是小徐啊。IntellijIDEA默认是英文的操作界面,因为是外国人开发的嘛~对于英文好一点的同学来说,英文就英文吧,但对于英文比较差的同学,就还是希望能够汉化一下,变成熟悉的中文。今天小徐就来介绍下如何在IDEA中安装汉化插件,以及在这过程中,我遇到的奇怪问题,以及最后如何......
  • P8099 [USACO22JAN] Minimizing Haybales P 题解
    好题图论的难点在于建图~首先我们关注到如果两个草堆之间的差大于K,那么他们的位置就是固定的,就相当于给了一些限制,这就是很经典的连边然后拓扑排序。其实你是不是可以直接从小的向大的连边(我没试)然后再做排序。这一部分代码(粗略验证正确性,赶着写的,可能比较一言难尽)#include<bi......
  • 【考试题解】NOIP2024(欢乐)加赛3
    目录A.SakurakoandWater题目内容思路代码B.BinomialCoefficients,KindOf题目内容思路代码C.QED'sFavoritePermutation题目内容思路代码D.CardGame题目内容思路代码E.LongWaytobeNon-decreasing题目内容思路代码F.ManyGames题目内容思路代码A.SakurakoandW......
  • COCI19-20#6 Trener题解
    COCI19-20#6Trenerlink一道水题(我真是太弱了啊啊啊啊。众所周知,看到这个题立刻知道他是要选名字长度为$1$到$N$的,而我们知道他每一个名字,所以可以直接用字符哈希去做,因为他每一个名字的字符数是上一层名字的字符数加一,所以对于哈希每个字符串只需要跑三次,分别是自己的这......
  • 【题解】洛谷P11186: 三目运算
    不好玩!!!这是个树形结构,直接暴力模拟,但过不去,但是需要发现答案是个区间,我们对字符串处理时记录最大值最小值,然后到叶子节点时我们将此时的区间存起来,查询时直接二分查询这个数对于的区间就可以了。总结:不好玩!!!#include<bits/stdc++.h>usingnamespacestd;#definelllonglon......
  • 【题解】洛谷P1712: [NOI2016] 区间
    P1712[NOI2016]区间我对尺取法并不敏感,所以感觉有点难度,我们想到按照区间长度排序加入使得满足单调性,直到有一个区间的覆盖次数达到了m就可以计算了,而这个就是尺取法,单调性使得我们答案总是最优的。覆盖次数就可以用线段树做,而且数据范围很大需要离散化,计算答案时注意把答案带......
  • 题解:P11251 [GESP202409 八级] 美丽路径
    题目传送门题目大意给你一颗树,每个结点为黑色或白色。求一条路径,使得路径上距离为奇数的点颜色不同,距离为偶数的点颜色相同,输出这条路径最多能包含多少结点。思路讲解容易想到用树形动态规划搭配dfs解决。将结点1......
  • 2021年6月上海月赛T5题解(做基础123题时遇到的)
    平衡点内存限制: 256 Mb时间限制: 1000 ms题目描述给定一个由 n 个整数组成的数列a1​,a2​,⋯,an​,请为这个数列找到一个平衡点,使得平衡点左侧与右侧的力矩尽量接近。若平衡点为 ak​,则左侧力矩定义为数列中下标小于 k 的各个元素到 ak​ 的距离乘以这些元素......
  • 「AT_diverta2019_2_e」Balanced Piles 题解
    题意描述有一个长度为\(N(2\leN\le10^6)\)的数组,一开始所有元素均为\(0\)。设\(M\)为当前数组中的最大元素,\(m\)是当前数组中的最小元素,你可以执行若干次以下操作:选择一个大小为\(m\)的元素,把他变为\(x\),其中\(M\lex\leM+D\)且\(m<x\)。求有多少种操作方法......
  • [ARC105C] Camels and Bridge 题解
    [ARC105C]CamelsandBridge题解https://www.luogu.com.cn/problem/AT_arc105_c记:这是24年夏天在北京梦熊写的(模拟赛撞原),希望这年夏天fowever。sol首先\(n\)很小,所以可以去暴力枚举顺序,也就是全排列。\(W_s\)表示排列为\(s\)时的间距。又令\(f_i\)为前\(i\)只......