codeforces different arrays 1783d

atcode abc318,codeforce 1861

题目链接 题解 目录AtCoder abc318_a Full MoonAtCoder abc318_b Overlapping sheetsAtCoder abc318_c Blue SpringAtCoder abc318_d General Weighted Max MatchingAtCod ......
codeforce atcode 1861 abc 318

Codeforces Round 897 (Div. 2) A~E

Codeforces Round 897 (Div. 2) A~E A: 原先数组里面最小的位置放最大的数,次小的放次大的即可。 void solve(){ int n; cin>>n; for(int i=1;i<=n;i++){ int x; cin>>x; c[i]={x,i}; } sort ......
Codeforces Round 897 Div

Codeforces Round 896 (Div. 2)

Codeforces Round 896 (Div. 2) A. Make It Zero 代码: #include <bits/stdc++.h> using namespace std; using ll = long long; using i128 = __int128; int n, m; ......
Codeforces Round 896 Div

CF1867A green_gold_dog, array and permutation

思路 很简单的一道题,洛谷大概都不会开放题解通道?(实际上貌似每场比赛的 A 都没开放?) 显然,对于原数组较小的数,我们尽量让大的数,取全排列的较小的数,这样可以保证差是逐渐变小的,也就让 \(c\) 数组差异变大。 所以直接拿个 struct 存,然后两边排序就好。 AC code #inclu ......
green_gold_dog permutation 1867A green array

CF1867E1 Salyg1n and Array (simple version)

思路 首先考虑,\(n\) 是 \(k\) 的倍数的情况,直接枚举询问所有每一段就好,然后输出每一段的异或和的异或和。 如上图,每次询问都没有重叠部分,颠转互不干扰。 那么,\(n\) 不是 \(k\) 的倍数的情况呢? 可以看到,与第一种情况的区别就是末尾多了一小截,那么我们需要考虑如何计算这一小 ......
Salyg1n version Salyg1 simple 1867E

CF1867E2 Salyg1n and Array (hard version)

其实如果你在做 E1 的时候想到正解了,这道题都甚至不需要改 E1 的代码,直接交就好,这大概也是 E2 的分还没 E1 的高的原因。 因为一摸一样的思路,所以这里就不作介绍了,可以看看我的题解。 在这里呢,主要是稍微证明一下询问次数不会超,如下: 可以发现,有余数的情况,只会增加两次询问,而后面的 ......
Salyg1n version Salyg1 1867E Array

[2022 China Collegiate Programming Contest (CCPC) Guilin Site](https://codeforces.com/gym/104008) CEM

2022 China Collegiate Programming Contest (CCPC) Guilin Site CEM C. Array Concatenation 思路:数学推柿子 考虑有两种操作: 复制 \(b' = \{b_1,b_2,...,b_{|b|},b_1,b_2,..., ......

$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

CodeForces 542B Duck Hunt

洛谷传送门 CF 传送门 首先转化一下,让鸭子不动,猎人往右移动,就相当于开的相邻两枪距离 \(> m\)。 设 \(f_{x, i}\) 为仅考虑 \(r \le x\) 的鸭子,上一次在 \(i\) 开枪,能打到的最大鸭子个数。 \(f_{x - 1} \to f_x\) 时,首先有 \(f_{ ......
CodeForces 542B Duck Hunt 542

Codeforces Round 896 (Div. 1)

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

Codeforces Round 101 (Div. 2) C - E

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

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

【题解】Educational Codeforces Round 142(CF1792)

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

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

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

Codeforces Global Round 21 B. NIT Destroys the Universe

给一个长为 \(n\) 的数组,可以执行以下操作任意次: 选择 \(l, r(1 \leq l < r \leq n)\) ,让 \(\forall i(l \leq i \leq r), a_i = mex(\{a_l, a_{l+1}, \cdots, a_{r}\})\) 。 问最小操作数使得 ......
Codeforces Destroys Universe Global Round

Educational Codeforces Round 132 (Rated for Div. 2) B. Also Try Minecraft

一个世界地图用一个长为 \(n\) 的数组表示,\(a_i\) 代表坐标 \(i\) 的高度。若下一块区域的高度为 \(y\) ,当前区域的高度为 \(x\) ,则一次行走会受到 \(max(y - x, 0)\) 点下落伤害。 有 \(q\) 个询问,每个询问独立,给定起点和终点坐标 \(s, t ......
Educational Codeforces Minecraft Round Rated

Educational Codeforces Round 130 (Rated for Div. 2) B. Promo

有 \(n\) 件商品,第 \(i\) 件的价格是 \(p_i\) ,若买至少 \(x\) 件商品,则其中最便宜的 \(y\) 件免费。给 \(q\) 个询问,每次给出 \(x, y\) ,回答最多能免费的价值。 按大到小排序,求前缀和 \(S_{i}\) 表示买前 \(i\) 件商品需要的开销。 ......
Educational Codeforces Round Rated Promo

Codeforces Round 895 (Div. 3)

A. Two Vessels #include <bits/stdc++.h> using namespace std; #define int long long const int mod = 1e9 + 7; using i64 = long long; void solve() { int ......
Codeforces Round 895 Div

Codeforces Round 804 (Div. 2) B. Almost Ternary Matrix

给两个偶数 \(n\) 和 \(m\) 。任务是构造任意一个二进制矩阵,\(n \times m\) 。对于任意 \((i, j)\) ,有且仅有两个邻居的颜色与 \(a_{i, j}\) 不同。邻居的定义为 \(|x - x'| + |y - y'| = 1\) 。 观察:任何 \(n \time ......
Codeforces Ternary Almost Matrix Round

Codeforces Round 807 (Div. 2) B. Mark the Dust Sweeper

需要打扫 \(n\) 个房间,第 \(i\) 个房间有 \(a_i\) 的积灰。只能使用如下魔法打扫: 选择 \(i, j, (1 \leq i < j \leq n, \min_{k = i}^{j} a_i > 0)\) 。 执行 \(a_i = a_i - 1, a_j = a_j + 1\) ......
Codeforces Sweeper Round Mark Dust

Codeforces Round 811 (Div. 3) A. Everyone Loves to Sleep

闹钟设有 \(n\) 个时间点,第 \(i\) 个时间为 \((H_i,M_i)\) 。在 \(h, m\) 时刻入睡,响铃必须起床,问能睡多久。 使用 \(set<pair<int, int>>\) 存储闹铃时刻,然后在其中 \(lower_{bound}\) 到 \(<first \geq h, ......
Codeforces Everyone Round Loves Sleep

Codeforces Round 815 (Div. 2) A. Burenka Plays with Fractions

给两个数 \(\frac{a}{b}\) 和 \(\frac{c}{d}\) ,一次修改可以修改 \(a\) 或 \(b\) 之一,求最小修改数使得 \(\frac{a}{b} = \frac{c}{d}\) 。 若 \(\frac{a}{b} = \frac{c}{d}\) ,除式化乘式,则讨论 ......
Codeforces Fractions Burenka Round Plays

Codeforces Round 819 (Div. 1 + Div. 2) and Grimoire of Code Annual Contest 2022 A. Mainak and Array

给一个长为 \(n\) 的正整数数组,执行以下操作严格一次。 选择 \(l, r, (1 \leq l < r \leq n)\) ,任意一个正整数 \(k\) 。 重复 \(k\) 次:让 \([l, r]\) 的数组成环,按顺时针走一次。 希望 \(a_n - a_1\) 最大,找到这个数。 分 ......
Codeforces Div and Grimoire Contest

Codeforces Round 830 (Div. 2) B. Ugu

给一个 \(01\) 字符串,需要使它变为非降的,可以执行以下操作: 选择一个下标 \(i, (1 \leq i \leq n)\) ,\(\forall j \geq i\) 的数位翻转。 经典的按无后效性翻转问题。 考虑从前往后,得到一个全 \(0\) 串。若开始存在 \(1\) ,则答案减 \ ......
Codeforces Round 830 Div Ugu

$Codeforces Round 891 (Div. 3)$

\(A. Array Coloring\) 显然需要奇数个偶数即可满足题目。 void solve(){ int n=read(),res=0; for(int i=1;i<=n;i++){ int x=read(); if(x%2)res++; } puts(res%2==0?"YES":"NO" ......
Codeforces Round 891 Div

$Codeforces Round 888 (Div. 3)$

\(A. Escalator Conversations\) 用 \(map\) 存楼梯的高度(差),对每个人看一下需要的楼梯高度是否存在。 int a[N]; void solve(){ int n=read(),m=read(),k=read(),h=read(); map<int,int>mp ......
Codeforces Round 888 Div

Codeforces Round 821 (Div. 2) B. Rule of League

有 \(n\) 名选手参加一场比赛,编号为 \(1 \sim n\) 。规则为: 选手 \(1\) 和选手 \(2\) 比赛 第 \(1\) 轮胜者胜者与选手 \(3\) 比赛; 第 \(2\) 轮胜者与选手 \(4\) 比赛 \(\cdots\) 第 \(n - 2\) 轮胜者与选手 \(n\) ......
Codeforces League Round Rule 821

Codeforces Round 824 (Div. 2) B. Tea with Tangerines

有 \(n\) 块橘子皮,第 \(i\) 块大小为 \(a_i\) 。在一部操作中可以把一块橘子皮分成两块,即这块橘子皮为 \(x\) ,让 \(x\) 变为 \(y, z(x = y + z)\) 。 希望对于任意两块橘子皮,他们相差严格小于两倍。即两块中更小的为 \(x\) ,更大的为 \(y\ ......
Codeforces Tangerines Round with 824