rounding maximum 1857b cf
Codeforces Round 653 (Div. 3) B. Multiply by 2, divide by 6
给一个正整数 \(n\) ,每一步可以让 \(n\) 除以 \(6\) 或者让 \(n\) 乘以 \(2\) 。询问进过多少次操作可以使得 \(n\) 变为 \(1\) 。或者回答不可能。 在唯一分解定理下观察 \(n\) 。 如果 \(n\) 除以 \(6\) ,则 \(2^{\alpha_1}3 ......
Educational Codeforces Round 91 (Rated for Div. 2) A. Three Indices
给一个 \(n\) 个整数的排列 \(p_1, p_2, \cdots, p_n\) ,需要找到三个数 \(i, j, k\) 满足: \(1 \leq i < j < k \leq n\) \(p_i < p_j\) , \(p_j < p_k\) 否则回答不可能。 \(key\) :若存在上述 ......
* Codeforces Round 665 (Div. 2) A. Distance and Axis
有一个点 \(A\) 在 \(OX\) 正坐标轴上的 \(x\) 坐标为 \(n\) 。需要找到一个点 \(B\) ,使得 \(||OB| - |AB||= k\) 。 现在给出非负整数 \(n\) \(k\) ,你可以执行任意次以下操作: 每步操作可以使 \(A\) 的坐标加一或减一。 询问最少需 ......
CF1873F Money Trees
CF1873F Money Trees 双指针好题,但是我用的队列( 考虑先找出所有极长的、满足任意一个数都能被它后面的那个数整除的连续段。显然这个操作可以在 \(\mathcal{O}(n)\) 的时间复杂度内完成。 求出每个极长连续段的答案,取 \(\max\) 即为最终答案。那么现在的问题就是 ......
CF1867B XOR Palindromes
CF1867B XOR Palindromes 这里是一个关于 \(n\) 的奇偶性分类讨论的做法。 设最终的答案序列为 \(\{ans_{n+1}\}\),它由 \(0,1\) 组成。 首先计算出原序列中有序数对 \((i,n-i+1)\) 的个数,使得 \(s_i \not= s_{n-i+1} ......
CF1628D2 Game on Sum
题目链接(Easy) 题目链接(Hard) Part1 神奇的博弈类型 \(Dp\) 。 我们发现与当前状态有关的量,有且只有 现在是第几轮,还有 Bob 用了几次加的操作 ,这都会影响之后的决策,而和之前的决策无关,换句话说,当前决策有后效性,没有前效性。那我们考虑倒着 \(Dp\). Part2 ......
CF1872B The Corridor or There and Back Again
CF1872B The Corridor or There and Back Again 观察第二组样例的解释,注意这句话:“第二个陷阱限制了你”。这启发我们计算经过每个陷阱之后最多还能向前走到哪里,然后取 \(\min\) 得到答案。 现在的问题是如何求出每个陷阱限制的最远可到达点。 由于要求折返 ......
CF1867C Salyg1n and the MEX Game
CF1867C Salyg1n and the MEX Game 简单博弈论题。 设给出序列的 \(\text{mex}\) 为 \(x\),那么 Alice 第一次操作时加入 \(x\) 一定是最优的。此时显然有 \(\text{mex(s)} \ge x\)。 因为如果加入的数 \(y<x\), ......
Codeforces Round 903 (Div. 3)
[比赛链接] A. Don't Try to Count 直接用string的可加性,每次 s+=s 相当于翻倍了,因为 \(nm<=25\) 所以最多翻倍5次。 判断什么的直接模拟就行。 #include<iostream> #include<algorithm> #include<cmath> ......
CF1854C Solution
题目链接 题意 给定大小为 \(n\) 的正整数集合 \(S\),\(S\) 中的每个数在 \(1\sim m\) 之间。 每一秒进行如下操作: 从 \(S\) 中等概率随机选择一个数 \(x\)。 将 \(x\) 从 \(S\) 中删去。 若 \(x + 1\leq m\) 且 \(x + 1\n ......
CF585F Digits of Number Pi
CF585F Digits of Number Pi 更好的阅读体验 观察数据范围,考虑数位 DP。 首先把长串中 \(len\geq\lfloor \frac{d}{2}\rfloor\) 的串提出来,塞进一个 trie 里,然后建立 ACAM,然后直接 DP 就行了。 设 \(f_{i,j,0/ ......
pjudge A. 【NOIP Round #6】抉择
原题 这题和绝世好题有异曲同工之妙(虽然赛时也想到了但并没有发现贪心结论 QwQ ) 首先容易想出 \(O(n^2)\) 的 dp :设 \(dp_i\) 表示前 \(i\) 个数 \(i\) 强制选最大值,然后转移枚举上一个选的是什么 考虑正解,发现因为转移方程加上了 \(a_j \& a_i\) ......
CF660E
题目传送门 description 给定 \(n,m\)。 求所有长度为 \(n\),值域是 \([1,m]\) 中的正整数的序列的本质不同子序列数量和。 \(n,m\leq 10^6\) solution 考虑计算每个长度不超过 \(n\) ,值域为 \([1,m]\) 中的正整数的序列是多少个长 ......
CF1657E
题目传送门 description 给定 \(n,k\),求 \(n\) 个点的无向完全图满足其边权为 \([1,k]\) 中的正整数且其最小生成树边权和等于与 1 号点相连的边的权值和。 \(n,k\leq 250\) solution 不妨先确定 1 号点到剩下 \(n-1\) 个点中 \(i\ ......
CF1264D2 Beautiful Bracket Sequence
第二次听这道题,写个推导过程。 考虑对于给定的括号序列如何算答案,考虑最终答案对应回原序列的位置,于是我们要找到一个位置让其左边的左括号与右边的右括号一样多。因为挪指针时两者之一一定变化,并且两边均单调,所以这个分界点是唯一的。 考虑枚举分界点算答案。假设左边有 \(x\) 个问号,右边有 \(y\ ......
CF237D T-decomposition
原题链接 链式前向星,他来了 通过观察发现,每个集合的大小最小为 \(2\),显然我们需要构造一种方案使得每一个集合的大小都为 \(2\),这样是最优的。 每个集合大小为 \(2\),等价于把每条边转换成新树上的一个点,一共 \(n-1\) 边,对应 \(n-1\) 个集合,每个集合的点对在 dfs ......
CF1872G Replace With Product 题解
原题 翻译 初看此题,显然感觉有点不对劲,因为感觉如果 \(a_i\) 很大的话肯定是选越多越优秀,但之后并没有什么思路,反而想到线段树上去了(值域这么大做 nm 线段树) 发现如果 \(\prod a_i > 2 \times 10^{14}\) ,那就把做右端点收敛到都不是 \(0\) 的最远位 ......
CF1204D2 Kirk and a Binary String (hard version) 题解
CF1204D2 Kirk and a Binary String (hard version) 题解 分析 先来分析 \(01\) 串的最长不下降子序列。全是 \(0\) 显然是不下降的,如果中间出现一个 \(1\),为了维护不下降的性质,后面就只能全是 \(1\)。一句话概括一下,\(0\) 后 ......
CF785D Anton and School - 2 题解
CF785D Anton and School - 2 题解 分析 很明显有一种 \(\mathcal O(n^2)\) 的做法,遍历每一个 (,再枚举 \(k\),左边不包含这一位选 \(k-1\) 个 (,右边选 \(k\) 个 ),求组和即可。 但是数据范围是 \(n \le 2\times ......
Codeforces Round 670 (Div. 2) A. Subset Mex
给一个正整数的集合 \(S\) ,需要将他分成两个非空子集 \(A\) 和 \(B\) 满足 \(S = A + B, A \cap B = \varnothing\) 。你需要使 \(mex(A) + mex(B)\) 最大,询问这个最大值。 若 \(mex(A) + mex(B)\) 最大,则 ......
Codeforces Round 903 (Div. 3) F. Minimum Maximum Distance(图论)
Codeforces Round 903 (Div. 3) F. Minimum Maximum Distance 思路 对标记点更新fg,从0开始进行bfs,更新d1为所有点到0的距离 获得到0最远的标记点L,从L开始bfs,更新d2为所有点到L的距离 获得距离L最远的标记点R,从R开始bfs,更 ......
CF & AT 做题记录
选一些 \(\text{div 1}\) 中的好题总结一下 \(\textrm{qwq}\) 从现在开始像 \(\color{red}\text{r} \color{black}\text{ainboy}\) 一样打比赛 \(\textrm{qaq}\) $$\textrm{Codeforces R ......
Codeforces Round 671 (Div. 2) A. Digit Game
\(R\) 和 \(B\) 在玩一个数字游戏,给一个含有 \(n\) 位的正整数 \(x\) 。俩人轮流操作, \(R\) 先行动。 在每一步中,\(R\) 可以选择 \(x\) 中一个未被标记的奇数位置并标记,\(B\) 可以选择 \(x\) 中一个未被标记的偶数位置并标记。 当最后只剩下一个未被 ......
Codeforces Round 748 (Div. 3) B. Make it Divisible by 25
给一个正整数 \(n\) ,在一步操作中可以移除 \(n\) 中的一个。当 \(n\) 只剩下一位时将不能再操作,如果过程中产生了前导 \(0\) ,则会被自动移除且不耗费操作次数。 询问最少需要多少次操作可以使得 \(n\) 被 \(25\) 整除。 显然一个正整数 \(x\) 若可以被 \(25 ......
Educational Codeforces Round 116 (Rated for Div. 2) A. AB Balance
给一个长为 \(n\) 的字符串 \(s\) ,只包含 \(0\) \(1\) 两种字符。定义 \(AB(s)\) 是 \(s\) 中出现的 \(01\) 子串个数,\(BA(s)\) 是 \(s\) 中出现的 \(10\) 子串个数。 在一步操作中,可以选择一个字符进行异或。询问最小的操作次数使得 ......
Codeforces Round 903 (Div. 3) E. Block Sequence(DP)
Codeforces Round 903 (Div. 3) E. Block Sequence 思路: 设dp[i]为当i~n为完美的最少删除次数 dp[n]=1,dp[n+1]=0; 从后至前对于dp[i]更新 若直接删除当前点,则为 dp[i+1]+1 若不删除 则为 min(dp[i+a[i] ......
Some seqs are too long, please rebuild the program with make parameter MAX_SEQ=new-maximum-length (e.g. make MAX_SEQ=10000000)
001、cd-hit报错如下 Some seqs are too long, please rebuild the program with make parameter MAX_SEQ=new-maximum-length (e.g. make MAX_SEQ=10000000) 002、解决方法 ......
Codeforces Round 903 (Div. 3)
D题被hack了 哭了 第一题简单的只用把字符串重复的同时尝试匹配,然后判断就好了,只是需要一点代码能力 第二题,也很简单最多剪断3次,就先从小到大排序,然后用最小的,看看大的是他的几倍,如果不是几倍的关系就不可能完成,如果是就算要几次就好了 第三题,也很简单,很明显,对于一个格子,在它旋转90度后 ......
Codeforces Round 672 (Div. 2) A. Cubes Sorting
有 \(n\) 个方块,第 \(i\) 个方块重量为 \(a_i\) 。需要使方块按照非降序排列摆放。在每一步操作中,可以交换任意相邻的两块方块。询问可以使所有方块按照非降序排序的最小操作数 \(p\) 是否 \(\frac{n \cdot (n - 1)}{2}\) 。 考虑一个事实,对于任意第 ......
Codeforces Round 674 (Div. 3) B. Symmetric Matrix
有 \(n\) 块 \(2 \times 2\) 的瓷砖,瓷砖上的每个方格包含一个数字,每种瓷砖都有无数种。现在需要用所给瓷砖构造一个 \(m \times m\) 的方形矩阵 \(a\) 满足: 每块瓷砖都在方形矩阵内 瓷砖之间不能存在覆盖 \(a_{i, j} = a_{j, i}\) 。 输出 ......