numbers lonely 1423k cf

CF1699A The Third Three Number Problem

###题意简述 构造出一个三元组a,b,c使得(a ⊕ b)+(a ⊕ c)+(b ⊕ c) = n,若无解输出-1。 符号 ⊕ 的意思为异或 ###个人分析 首先要了解异或符号的性质: 1,x⊕0=x 2,x⊕x=x 根据异或符号的性质可以得到一下构造: a=b=0,c=n/2 c=0,a=b=n ......
Problem Number 1699A Third Three

「CF1188E」Problem from Red Panda

题目 点这里看题目。 给定一个长度为 $k$ 的非负整数序列 $a$。 你可以对于 $a$ 做如下操作任意次: 选定 $1\le j\le k$,满足除了 $a_j$ 外 $a$ 中其它数都为正。 而后,令 $a_j$ 加上 $k-1$,令除了 $a_j$ 外 $a$ 中其它数减去 $-1$。 (这 ......
Problem 1188E Panda 1188 from

B. Sum of Two Numbers - 贪心+思维+构造

题意:   给定一个整数n,输出x,y满足以下要求:   1. x+y=n   2. x的每一位上的数加在一起的数位和和y的数位和相差不超过1. 分析:   从高位开始依次遍历,将其平均分给x和y,奇数剩余的1由x和y轮流加上。 代码: ......
思维 Numbers Sum Two of

cf-div3-867-E

题目链接:https://codeforces.com/contest/1822/problem/E 被hack了。 错误的地方:每次取两个最大的,然后直接消去,这里不对,比如:2,3,3。 正解:还是每次取两个最大的,但这两个最大的每次只消去1,因为总共的数量不会超过$1e5$,所以时间复杂度很低 ......
cf-div 867 div cf

[LeetCode] 2336. Smallest Number in Infinite Set

You have a set which contains all positive integers [1, 2, 3, 4, 5, ...]. Implement the SmallestInfiniteSet class: SmallestInfiniteSet() Initializes t ......
LeetCode Infinite Smallest Number 2336

Problem A. Restoring Numbers

Problem A. Restoring Numbers Pavel had two positive integers a and b. He found their sum s and greatest common divisor g, and forgot a and b after tha ......
Restoring Problem Numbers

CF1621A Stable Arrangement of Rooks

###题目简述: 一个n*n的棋盘上,放上k个车,使得一任意车向上下左右移动一格(这里的车可以上下左右移动任意步数)后不与其他车相撞(注:不能走出棋盘之外)。 ###个人分析: 从题目可知,在车上下左右移动一格后不会与其他车相撞,换句话说,两辆车之间至少相隔一行一列,放在对角线上是最优想法,若无解则 ......
Arrangement Stable 1621A Rooks 1621

CF1822G2 - Magic Triples

比较好的题目,别的不说,G1 对 G2 有着不错的启发性。 首先,因为 $b>0,a_k\le 10^9$,所以 $b$ 不可能超过 $\sqrt{a}$ 考虑对 $b$ 分类讨论,设置一个阈值 $B$,先处理 $b=1$ 的情况,其实就是取三个相同的数然后排列,可以比较简单的排序之后做到 $O(n ......
Triples 1822G Magic 1822 CF

CF1821F - Timber

$$逐渐变成自己最讨厌的样子$$ 首先考虑 $dp$,设 $dp_{i,j}$ 表示当前放了 $i$ 个树,目前不得不覆盖到的最右点为 $j$,每放一棵树,如果能往左就往左,否则往右倒。 $\text{GF}$ 首先考虑 $dp_{i,j}$ 的转移。 第一种,在 $[j+1,j+k]$ 放一个树, ......
Timber 1821F 1821 CF

【SD集训】20230425 T2 差(difference) 题解 CF1500F 【Cupboards Jumps】

大家可以猜猜看为什么有两个标题,因为这个因本文就不设密码了,被 He_ren 的原题创到了。 吐槽一下,He_ren 甚至出原题还用脚造数据,虽然数据确实比较难造。不过那两个 $O(n^2)$ 老哥好像都没最后将所有数调整成非负,遗憾 20。 有人场切 * 3500 却没过签到题,我不说是谁。 题目 ......
题解 difference Cupboards 20230425 1500F

[LeetCode] 1342. Number of Steps to Reduce a Number to Zero 将数字变成 0 的操作次数

Given an integer num, return the number of steps to reduce it to zero. In one step, if the current number is even, you have to divide it by 2, otherwi ......
Number LeetCode 次数 数字 Reduce

CF1479 Div1 VP记录

战况: 别的不说,这个 B1 WA 3发是真的精髓。 A 略 B 我们设此时在第一队队尾的为 las0,在第二队队尾的为 las1,要放的数为 x。 先考虑 B1: 显然有:如果 las0 等于 x,放在第二队,如果 las1 等于 x,放在第一队。 考虑两边都不同的情况,我们想要这个 x 后面尽快 ......
1479 Div1 Div CF

CF1598G

讲真,有点谔谔。 首先考虑若 $a+b=x$ 那么 $|a|,|b|,|x|$ 满足什么样的关系。不妨设 $|a|\ge b$,不难发现 $|x|\ge |a|\ge |x|-1$。 那么分类讨论一下: $|a|=|x-1|$,则 $|b|=|x-1|$。 $|a|=|x|$,设 $\operato ......
1598G 1598 CF

CF1487E

题面 将 $a,b,c,d$ 分别用 $a_1,a_2,a_3,a_4$ 表示。 令与第 $i$ 类食物中的第 $j$ 个冲突的第 $i-1$ 类食物的集合为 $S_{i,j}$。 首先是是人都能看出来的 DP: 令 $f_{i,j}$ 为选择第 $i$ 类食物的第 $j$ 个时所需的最小费用,显然 ......
1487E 1487 CF

CF1227D2

题面 如果我们将 $a$ 数组从大到小排序,那么显然的,前 $k$ 个数就对应着长度为 $k$ 的元素和最大的子序列中各元素的值。 由于要求字典序最小,所以我们将 $a$ 数组中的元素下标进行排序,在排序时以对应的元素值为第一关键字,以元素下标为第二关键字(排序后对应的元素值从大到小,大小相等的元素 ......
1227D 1227 CF D2

CF237C

题面 ~~我来水题解啦!!~~ 首先这题和素数有关,我们就先需要一个线性筛: int prm[1000005],tot; bool vis[1000005]; void init(){ vis[1]=vis[0]=1; for(int i=2;i<=b;i++){ if(!vis[i])prm[++ ......
237C 237 CF

CF587F

题面 设 $f(s,t)$ 表示串 $s$ 在 $t$ 中出现的次数。 首先把询问 $\sum\limits_{i=l}^rf(s_i,s_k)$ 拆成 $\sum\limits_{i=1}^rf(s_i,s_k)-\sum\limits_{i=1}^{l-1}f(s_i,s_k)$,然后考虑如何算 ......
587F 587 CF

CF721B

题面 这题这么水怎么还是蓝啊(恼 ~~即使这么水我还是脑子抽风交了好几遍~~ 其实很简单: 不妨设正确密码长度为 $len$ ,根据题意,在试到正确密码前都要先把长度小于 $len$ 的密码全部试一遍,则最优情况就是试长度为 $len$ 的密码时一遍试对,最劣情况就是把长度为 $len$ 的所有密码 ......
721B 721 CF

CF939E

题意: 维护一个可重集 $S$,支持以下两种操作: 插入一个数,保证插入的数不降。 找出 $S$ 的一个子集 $s$,使 $\max(s) - \operatorname{mean}(s)$ 最大,输出这个最大值。其中 $\max(s)$ 表示 $s$ 中元素的最大值,$\operatorname{ ......
939E 939 CF

CF1579A

题面 $Update 2021.10.8:$使用了$\LaTeX$ 分析题意: 字符串 $S$ 中只有 $A$ $B$ $C$ 三种字符 删除 $A$ 时必须同时删除 $B$ 删除 $C$ 时也必须同时删除 $B$ 因此,删除 $A$ 和 $C$ 的总个数就等于删除 $B$ 的个数 解法: 想要让字 ......
1579A 1579 CF

CF1634A

题面 简单分析容易发现,若 $s=rev(s)$,则无论 $rev(s)$ 放在前面还是后面,生成的新串都相同,只有一种情况。 相反,如果 $s\neq rev(s)$,则一次操作后可以出现两种情况。而无论是哪种情况,生成的新串都是回文串,即 $s'=rev(s')$,根据乘法原理,后面的情况数都是 ......
1634A 1634 CF

CF1638A

考虑这样一种贪心策略: 按序号遍历 $a$,如果 $a_i=i$ 则继续,否则暴力向下找到一个 $a_j=i$,暴力翻转区间 $[i,j]$,然后退出。 正确性证明: 当遍历到 $a_i$ 时,$a_1$ 到 $a_{i-1}$ 一定已经是不需要翻转就已经字典序最小,因为如果不是的话程序在这之前就已 ......
1638A 1638 CF

CF1638C

蒟蒻有一种用 set 的乱搞(?)做法。 将题目中的连边要求反着说一遍:$i>j$ 且 $a_i<a_j$。 考虑遍历 $a$ 时,遍历到的 $a_i$ 编号一定要比它前面的大,只需要将前面比它大的元素都和它连起来。 将每个连通块看作一个整体,只要 $a_i$ 比其中任意一个小,$a_i$ 就可以加 ......
1638C 1638 CF

CF1654C

题意 有一些蛋糕,最开始只有一块。每次可以选择质量为 $x(x\ge2)$ 的一块,将其切成 $\left\lfloor\frac x2\right\rfloor$ 和 $\left\lceil\frac x2\right\rceil$ 两块。现在给定切 $n-1$ 次后的结果,判断能否通过最开始的 ......
1654C 1654 CF

CF1698D

题面 观察题面:$n\le10^4$,询问次数 $\le15$,因此考虑二分。 用 $x$ 表示没有被交换过的那个元素。 考虑当询问区间 $[l,r]$ 时,得到的序列满足什么条件,才能确定 $x$ 在这个区间内。 考虑一个在交换前的序列的 $[l,r]$ 区间内的元素 $y$,由题意 $a_y=y ......
1698D 1698 CF

CF1699C

题面 前排提醒:这是本题最烂的做法,代码长达 91 行。 由于题里提到了 $\operatorname{MEX}$,所以考虑该怎么求 $\operatorname{MEX}$。 我们使用主席树。由于主席树难以直接处理下标为 $0$ 的情况,所以给数组中的每个值都加上一个偏移量 $1$,同时下文提到的 ......
1699C 1699 CF

CF1806E

题面 看起来是个 DS 题,事实上是个乱搞题,做法挺多的。由于它给的这个结构看起来就不好优化,所以考虑随机化。 由于两个点到达 LCA 后剩下的贡献就是 LCA 到根的每个点权值的平方,这部分可以 $O(n)$ 预处理,所以只需要考虑两个点之间的路径所产生的贡献。 在树上随机撒 $\sqrt n$ ......
1806E 1806 CF

CF1798C

题面 形式化题意: 给出长为 $n$ 的两个序列 ${a}$ 和 ${b}$,定义序列 ${c}$ 满足:$c_i=d_ib_i$,其中 $d_i\mid a_i$。求 ${c}$ 最少能被分成多少个连续段,使得每个连续段内的值相同。 首先对于一个 $i$,如果 $c_i$ 能和 $c_{i-1}$ ......
1798C 1798 CF

CF1798E

题面 看到要求每一位的答案,首先考虑倒着扫,因为加数一般都比删数好做。 对于任意长为 $m$ 的的序列 ${b}$,我们都可以通过将 $b_1$ 改成 $1$,将 $b_2$ 改成 $m-2$ 使得 ${b}$ 成为一个 multitest,因此操作数不会超过 $2$。 现在讨论答案的三种情况: 答 ......
1798E 1798 CF

CF237C

~~我来水题解啦!!~~ 首先这题和素数有关,我们就先需要一个线性筛: int prm[1000005],tot; bool vis[1000005]; void init(){ vis[1]=vis[0]=1; for(int i=2;i<=b;i++){ if(!vis[i])prm[++tot ......
237C 237 CF