首页 > 其他分享 >Codeforces Round 945 (Div. 2) (A - E)

Codeforces Round 945 (Div. 2) (A - E)

时间:2024-05-20 12:07:18浏览次数:21  
标签:945 最大值 位置 Codeforces mid cdots mx Div 钦定

A

每一轮对总分的贡献都是 \(2\),如果 \(p_1 + p_2 + p_3\) 为奇数则无解。

  • \(p_1 + p_2 \le p_3\),最多 \(p_1 + p_2\) 轮。
  • \(p_1 + p_2 > p_3\),可以 \(1, 2\) 轮流将 \(3\) 耗完,然后互相匹配,最多 \(\dfrac{p_1 + p_2 + p_3}{2}\) 。

B

  1. 如何判断一个 \(k_0\) 是否符合条件?

    处理每一位的前缀和,依次检查每个长度为 \(k_0\) 的子串,\(O(N\log N)\)。

  2. 如果 \(k_0\) 符合条件,则 \(k_1 = k_0 + 1\) 是否符合条件?

    令 \(s_i = a_i \mid a_{i + 1} \mid \cdots\mid a_{i + k_0 - 1}\)。

    则 \(s_i' = s_i = a_i \mid a_{i + 1} \mid \cdots\mid a_{i + k_1} = s_i \mid s_{i + 1}\)。

    由于 \(\forall i, j, \ s_i = s_j\),所以 \(\forall i, j, \ s_i' = s_j'\)。

答案具有单调性,考虑二分,复杂度 \(O(N\log^2N)\)。

C

长度为 \(n\) 的序列最多 \(n / 2 - 1\) 个局部最大值。

是否能达到这个上界?

钦定 \(n / 2\) 个位置为局部最大值,给这些位置按数值从大到小分配 \(n/2 + 1\cdots n\) ,给其他位置按数值从大到小分配 \(1\cdots n / 2\)。

钦定位置的最小值可能为 \(n + 1\),其他位置的最大值也可能为 \(n + 1\),不好判断。

如果钦定位置一定包含数值 \(n\) 呢?

钦定位置至少为 \(n + 1\),其他位置最大只有 \(n\)。

因此,只要在选定 \(n/2\) 个位置后,按上述策略分配即可。

由于局部最大值两两不相邻,不妨按照 \(n\) 所在位置的奇偶钦定全部奇数位或全部偶数位。

D

  1. 答案 \(m\) 一定是最大值 \(mx\) 的倍数。
  2. 最短子段长度不大于 \(n / k\)。
  3. \(m\) 一定不大于 \(mx\) 的 \(n / k\) 倍。

于是先花 \(n\) 次操作找到最大值 \(mx\)。

再枚举 \(m\) 是 \(mx\) 的几倍,每轮不超过 \(k\) 次,总共不超过 \(n\) 次。

标签:945,最大值,位置,Codeforces,mid,cdots,mx,Div,钦定
From: https://www.cnblogs.com/Luxinze/p/18201631

相关文章

  • CF937Div4E 分段比较
    NearlyShortestRepeatingSubstring本题思路:(有长度L|n时,长度为L的串才是s的子串)降低枚举频率,此时枚举最小子串长度L(有L*x=s)。接下来考虑其,最多不匹配位置为1(当不匹配位置为2时直接弹出)题解认为:不同的字母也可能出现在前缀中(例如,......
  • Codeforces 401B Sereja and Contests 题解
    题目简述Sereja是一名程序员,他喜欢参加Codesorfes比赛。不过,乌兹兰的网络连接不太好,所以Sereja有时会跳过比赛。Codesorfes有两种类型的比赛,分为Div1和Div2。Div1和Div2这两轮可以同时进行(Div1轮不能在没有Div2的情况下进行)。每一轮都有一个唯一的标识符,各轮按......
  • Codeforces Round 944 (Div. 4)
    CodeforcesRound944(Div.4)需要一些trick的一场H:2-sat的板子,已经计入2-sat专题,此处不再详细描述。题目用矩阵包装和博弈包装,我们需要慢慢读题,分析样例,找到问题的关键点。G:题意:给定一个数组,数组中任何两个数异或<4的数对可以交换位置,可以交换无限次,求能够形成的字典序最......
  • Codeforces Round 945 (Div. 2) A-D
    A.ChessForThree模拟。首先可以发现每一次对局三人的得分总和加\(2\),所以若干次对局后得分总和也一定是\(2\)的倍数,然后为了使和棋数量尽可能多,一直让得分最高的两人和棋且得分数各减\(1\)直到无法做出和棋为止。#include<bits/stdc++.h>usingnamespacestd;#def......
  • Codeforces Round 945 (Div. 2)
    A-ChessForThree因为序列满足a<=b<=c的情况显然通过得分可以观察出得分总和必定为偶数否则不成立求的是最大平局数那么直接假设全部都是平局这时候发现如果c过大会导致后面的局数不是平局那么只用把c>a+b的情况取出而此时平均数为a+b点击查看代码#include<bits/stdc+......
  • Codeforces 769B News About Credit 题解
    题目简述波利卡普在由$n$名学生(包括他自己)组成的小组中学习,编号为$1$到$n$,波利卡普的编号始终是$1$。他们都在社交网络上注册,每个学生都有一个值$a_i$,表示第$i$名学生每天能发送的最大信息数。清晨,波利卡普知道了一个重要消息,他认为有必要通过私人消息紧急通知所有组员......
  • CF-945(已更A,B)
    CF-945(A,B)A分析模拟合法情况下三个数的和只能是偶数:题中的两种操作显然都不会改变和的奇偶性这点我的代码中没有用到要使平局数最多,一定是最大的两个数减一,重复这个过程,直到两个较小的数都为零,且最大数一定是偶数,否则不合法:可以由题意和样例想到代码inta[4];voidso......
  • Codeforces 959B Mahmoud and Ehab and the message 题解
    题目简述小A想要给他的朋友小B发送了一条有$m$个单词的消息。他们的语言由编号从$a_1$到$a_n$的$n$个单词组成。一些单词具有相同的意思,因此存在$k$个单词组,其中每个组中的所有单词具有相同的意思。小A知道第$i$个单词可以以成本$m_i$发送。对于他的每个消息......
  • Codeforces 1113B Sasha and Magnetic Machines 题解
    题目简述有一个长度为$n$的正整数序列。你可以对这个数列进行最多$1$次的如下操作:选择两个数$i$和$j$,其中$1\leqi,j\leqn$并且$i\neqj$,并选择一个可以整除$a_i$的正整数$x$,然后将$a_i$变为$\frac{a_i}{x}$,将$a_j$变为$a_j\cdotx$。问你操作后,该序......
  • Codeforces 1178B WOW Factor
    题目简述给定一个只含$v$和$o$的字符串$s$,求字符串中有多少个$wow$(一个$w$即为连续的两个$v$)。题目分析考虑枚举每一个$o$,设下标为$i$,统计它左边和右边各有多少个$w$,分别设为$a_{i-1}$和$b_{i+1}$,依据乘法原理,将它们乘起来即为答案,累加即可。接下来,考虑怎么处......