题解1203 div cf

$Codeforces Round 897 (Div. 2)$

\(A. green_gold_dog, array and permutation\) 让大的数减小的数就可以制造更多的不同。 PII a[N]; int ans[N]; void solve(){ int n=read(); for(int i=1;i<=n;i++){ a[i]=make_pa ......
Codeforces Round 897 Div

CF1718F Burenka, an Array and Queries

显然先考虑把每个 \(a_i\) 只因数分解,令 \(S(x)\) 表示 \(x\) 只因子的集合。 令 \(S_{l,r}=S\left(\prod\limits_{i=l}^ra_i\right)=S(a_l)\cup S(a_{l+1})\cup\cdots \cup S(a_r)\)。假如我 ......
Burenka Queries 1718F Array 1718

CF1559D1&D2 Mocha and Diana

原题(Eazy Version) 原题(Hard Version) 翻译 首先我们先考虑Eazy Version。容易发现,在\(A,B\)两个森林中一定有一个是一棵树。这个结论说明: 选边顺序没影响 能选就选 因此我们枚举\(n^2\)条边,用并查集判断连通性即可 最终复杂度\(O(n^2 \al ......
Mocha Diana 1559 amp and

【题解】CF1819A Constructive Problem

你考虑这道题中判 No 显然有两种情况: 如果说 mex 是 n 的话,即我们的所有数都是必不可少不能更改的,那么就是 No 如果说原序列中有 mex+1 那么我们就可以发现添加 mex 显然会有很大的问题,我们显然要将所有的 mex+1 的区间替换为 mex,并且保证其他的数的 mex 和原序列的 ......
题解 Constructive Problem 1819A 1819

P3616 富金森林公园 题解

P3616 富金森林公园 题解 题意 给你 \(n\) 个点,有 \(m\) 次操作,每次操作可以改变一个数的值,也可以查询有多少连续的块,满足这个块内的所有数的值都大于查询的值。 分析 还是比较容易想到用数据结构或分块的,毕竟有同时存在修改和查询操作。但是维护什么?怎么维护? 既然我们无法直接维护 ......
题解 森林公园 森林 公园 P3616

Codeforces Round 896 (Div. 1)

Preface 不管怎么说,最后还是被我苟上橙名了(虽然刚好2100整,不多不少) 感觉我在1900~2100之间卡了好久好久,反观我的队友都是打上紫名后随便两三场就打上橙了,狠狠地羞辱我这个铁混子 由于暑假集训打的校内排名比较高,作为新队伍也拿到了今年的一场CCPC+一场ICPC的名额,虽然要自费 ......
Codeforces Round 896 Div

【ABC105D】题解

题解 题意简述 给定 \(n\) 个数,求这 \(n\) 个数中有多少个二元组 \((x,y)\) 满足其中每一个数都是 \(m\) 的倍数。 思路 前缀和,\((x,y)\) 内每一个数 \(\bmod \ m = 0\),可以用 \((sum_y - sum_{x - 1}) \bmod \ m ......
题解 105D ABC 105

【题解】AtCoder-ABC319

AtCoder-ABC319A Legendary Players 使用 map 即可。 提交记录:Submission - AtCoder AtCoder-ABC319B Measure 依题意模拟。 提交记录:Submission - AtCoder AtCoder-ABC319C False ......
题解 AtCoder-ABC AtCoder ABC 319

ABC319 A-E 题解

A 用 map <string, int> 将名字对应的值存下来即可。 赛时代码 B 按照题意暴力模拟,注意细节。 赛时代码 C 答辩题,卡了我半个小时。 枚举 \(1\sim 9\) 的全排列,然后按照顺序计算即可,但代码实现比较答辩。 赛时代码 D 显然具有可二分性,直接二分并判定可行性即可,注 ......
题解 ABC 319 A-E

Codeforces Round 101 (Div. 2) C - E

C. Queue (思维、排序、构造、*1800) 题意:$ n $ 个人排队, 为他们构造一组身高, 使得 $ x $ 的前面有 $ a_i $ 个人比他高。如果无法构造满足所有条件的身高序列, 输出 -1。 思路:首先考虑, 对于 $ a_i $ 较大的人, 肯定尽可能地将其往队伍后面放, 然后 ......
Codeforces Round 101 Div

题解 Gym 104531D【Coffee】

2022 SYSU School Contest 题目不想翻译了,自己看能看懂。 problam The girls of HTT like drinking tea. But one day, they wanted a change and decided to try coffee in th ......
题解 104531D 104531 Coffee Gym

CF1864E Guess Game

原题 翻译 非常好的一道题,不过前半部分的逻辑推理比较难理解,这很博弈 由于或运算是有\(1\)就为\(1\),因此我们对于一对数\((a,b)\),我们不需要看\(a|b\)中为\(0\)的那些位,因此我们只需要考虑\(a|b\)全\(1\)的情况即可 我们考虑一下如果\(Alice\)说"我不知 ......
1864E Guess 1864 Game CF

Codeforces Round 896 (Div. 2) A-D2

A. Make It Zero 没看懂这个 8 次的限制是什么意思。先用一次直接把所有数变成 \(\oplus_{i=1}^n a_i\),如果 \(n\) 是偶数直接 \([1,n]\) 做完,如果是奇数先把 \([1,n-1]\) 变成 0,再做两遍 \([n-1,n]\) 即可。 点击查看代码 ......
Codeforces Round 896 A-D Div

CF1869B 2D Traveling

思路 首先思考,除了 \(a\) 和 \(b\) 我们不应该到达任何非主要城市。 理由很简单,两点之间线段最短,如果我们目前要从 \(u\) 前往 \(v\) 且 \(u\) 和 \(v\) 不都是主要城市,即 \(u\) 到 \(v\) 需要花钱,那么如果再选择一个不是主要城市的 \(k\),那么 ......
Traveling 1869B 1869 CF 2D

CF1868B1 Candy Party (Easy Version)

思路 首先想要均分糖果,那么必须满足糖果总数 \(sum\) 是人数 \(n\) 的倍数。 然后我们再取平均值,令 \(s=\frac{sum} n\)。 因为每个人必须收到一次糖果且只能送出一次糖果,所以对于每一个 \(a_i\),我们首先需要满足 \(a_i-s\) 可以被表示为 \(2^x-2 ......
Version 1868B Candy Party 1868

CF1868B2 Candy Party (Hard Version)

建议先看简单版本以及我的题解。 思路 可以发现困难版本比简单版本唯一不一样的地方就是可以给糖也可以不给,可以收糖也可以不收。 首先还是需要求和,如果无法平分,肯定无解,再算出平均数 \(s\)。 还是考虑每一个 \(a_i\),如果 \(|a_i-s|\) 不是二次幂,那么肯定必须同时给糖和收糖,判 ......
Version 1868B Candy Party 1868

230909 NOIP 模拟赛 T1 cake 题解

原题 题意 有一块 \(n\times m\) \((1\le n,m\le 14)\) 的蛋糕,每个位置上有一个权值 \(a_{i,j}\) \((1\le a_{i,j}\le 1000)\),现在你要把它切开。每次你可以平行与某一边界把蛋糕切开,所以共有 \(n-1\) 个可以竖着切的位置,以 ......
模拟赛 题解 230909 NOIP cake

CF1864C Divisor Chain

原题 翻译 好题难想 首先考虑\(x = 2^k\)怎么做,显然每次\(- 2^{k-1}\)即可 然后我们考虑对于\(x \neq 2^k\)怎么把他变成\(2^k\),答案就是\(x -= lowbit(x)\) 操作次数\(O(logn)\)的,\(< 1000\),正确性显然 ......
Divisor 1864C Chain 1864 CF

【CF1513C】Add One(动态规划)

题目大意: 给\(n()\)的每个数码加一,重复\(m(1\le m\le 2\times 10^5)\)次,求最终结果的长度,询问\(t(1\le \times)\)次。 #include<bits/stdc++.h> using namespace std; typedef long long ......
动态 1513C 1513 Add One

【题解】Educational Codeforces Round 142(CF1792)

没有手速,再加上被 E 卡了,废掉了。 A.GamingForces 题目描述: Monocarp 正在玩电脑游戏。他打算杀死 \(n\) 个怪兽,第 \(i\) 个的血量为 \(h_i\)。 Monocarp 的角色有两个魔法咒语如下,都可以以任意顺序用任意次(可以不用),每次使用相当于一次操作。 ......
题解 Educational Codeforces Round 1792

CF *2600 DP选练

CF258D 题目描述: 有一个长度为 \(n\) 的排列,有 \(m\) 次操作,操作为交换两个数 \(a,b\) ,每次操作都有 \(50\%\) 的概率进行,求进行 \(m\) 次操作后期望逆序对个数 \(n,m\le1000\) 题目分析: 看到 \(n\) 和 \(m\) 都只有 \(10 ......
2600 CF

[ABC319G] Counting Shortest Paths 题解

题意 给定由 \(N\) 个节点组成的无向完全图 \(G\),并删去 \(M\) 条边,求该图的最短路数量。 (\(2 \le N \le 2 \times 10^5, 0 \le M \le \min\left\{2 \times 10^5, \dfrac{N(N - 1)}{2}\right\} ......
题解 Counting Shortest Paths 319G

Codeforces Round 895 (Div. 3)

Codeforces Round 895 (Div. 3) A - Two Vessels 思路:找到差值,让a,b向中间靠 #include<bits/stdc++.h> using namespace std; #define int long long //#define int __int1 ......
Codeforces Round 895 Div

9.5 div.1

C - Set or Decrease 思路:只有两个操作:1.ai减一 和 2.ai变aj,要让所有数总和变小且操作次数少,可以贪心的想:操作一的ai为最小的数,操作二的ai为最大的数,aj为最小的数; 那么将a排序后,枚举操作2的数量cnt,对应的可以求出在满足总和小于等于k的情况下需要操作一的 ......
9.5 div

SMU Autumn 2023 Round 2(Div.1+2)

SMU Autumn 2023 Round 2(Div.1+2) C. Chaotic Construction 把环展开的话就是\(1 \sim 2n\),若\(D\)的位置放上路障的话,在这个展开的环上就是\(D\)和\(D+n\)的位置,对于\(x,y\),我们就是去看\(D\)或者\(D+n ......
Autumn Round 2023 SMU Div

题解 LOJ6738【王的象棋世界】

problem 一个 \(R\times C\) 的棋盘,你有 \(Q\) 组询问,每次询问国王走 \(R-1\) 步从 \((1,a)\) 到达 \((R,b)\) 有多少种方案。你只需要输出答案对 \(998244353\) 取模的结果。\(2\le C\le 10^5, C\le R\le 1 ......
题解 象棋 世界 6738 LOJ

sol. CF1680F Lenient Vertex Cover

CF1680F Lenient Vertex Cover 下面用 \(G\) 表示一个环的边集,记作环 \(G\)。 我们令一个环 \(G\) 的价值为它经过的返祖边数量,记作 \(Z(G)\),下面给出核心结论: 若存在一条边 \(e_0\) 经过所有 \(Z(G) = 1\) 的奇环,且不经过任 ......
Lenient Vertex 1680F Cover 1680

【题解】CF1830D Mex Tree

我们考虑这道题一看题就特别难受,所有路径?\(mex\) 之和?这是什么东西? 我们考虑 \(mex\) 之和其实是有一点诈骗的感觉,毕竟是 \(0\) 或 \(1\),还比较简单。就是路径上全都是 \(1\) 的时候是 \(0\),全都是 \(0\) 的时候是 \(1\),有 \(0\) 和 \( ......
题解 1830D 1830 Tree Mex

Codeforces Round 798 (Div. 2) B. Mystic Permutation

给一个长为 \(n\) 的排列 \(p\) ,需要构造一个长为 \(n\) 的排列 \(q\) ,满足 \(\forall i, p_i \neq q_i\) ,且 \(q\) 在所有合法排列中字典序最小。 观察一:\(n = 1\) 时无解,否则有解。 观察二:\(n > 1\) 时,\(1 \s ......
Permutation Codeforces Mystic Round 798

【题解】CF1830E Bully Sort

考虑一次交换,我们发现,被选出来的 \([i,j]\) 的区间里 \(p_i\) 一定是最大的,\(p_j\) 一定是最小的。 然后我们会发现,我们原序列的逆序对数量会减少 \(2(j-i) - 1\),而 \(\sum|p_i-i|\) 会减少 \(2(j-i)\) 那么答案就是原序列的两部分相减 ......
题解 1830E Bully 1830 Sort