题解p9580 round game

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

[ABC319D] Minimum Width 题解

[ABC319D] Minimum Width 题解 题意分析 给定 \(n\) 个单词,现在想像“记事本”一样把它们依次地一行一行显示出来。每个字母宽度为一,单词之间需要有空格,宽度也为一。一个单词不可以成两部分显示在两行。如果单词最后一个字母来到行末,直接换行,不用空格。 给定窗口最大高度 \( ......
题解 Minimum Width 319D ABC

[题解} CF1217D Coloring Edges

CF1217D Coloring Edges 知识点: dfs 树。 题意 给定一张有向图,现在要求为图上所有的边进行染色,使得颜色种类最少的同时,同种颜色的边无法构成环,输出最少需要的颜色种类和任意一种染色可行方案。 思路 假设该有向图中不存在环,那么我们可以直接对所有的边染为同一种颜色。因此可以 ......
题解 Coloring 1217D Edges 1217

[JOISC 2016] 雇佣计划 题解

[JOISC 2016] 雇佣计划 题解 这里补充一篇自己的 \(n \log n\) 做法。 本蒟蒻打了两棵线段树,并且进行了繁琐的分类讨论,完全被标算的树状数组吊打 qwq 题意: 给定一个序列 \(a\),有两种操作: 将 \(c\) 位置权值改为 \(d\); 给定一个权值 \(b\),定义 ......
题解 JOISC 2016

$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

标准题解 - 2023/9/10

01串 对于相邻的两个段和 \(S_i\) 和 \(S_{i+1}\) 两段之间移动时的差别既删除了 \(i\) 号元素,添加了 \(i+K\) 号元素。如果 \(S_i = S_{i+1}+1\) 那么说明 \(i\) 号元素是 \(1\),\(i+K\) 号元素是 \(0\)。(删除 \(1\) ......
题解 标准 2023 10

P5318 题解

前置知识: 链式前向星初始化 深度优先搜索和广度优先搜索 如果你还不知道链式前向星,那么请看这篇文章,请务必搞懂它。 原题传送门 看到题解区没有关于链式前向星的题解,就准备来发一波! 思路分析 分析存储方法 在图中,最常见的存储方法是以下三种: 邻接矩阵 邻接表 链式前向星 现在我们就来逐一选择一下 ......
题解 P5318 5318

CF1570C 题解

一道纯粹的贪心题。 思路分析 通过观察,我们可以发现,每个瓶子所需要的射击次数的增长是与 \(x\) 密切相关的。 这样我们很容易想到,如果我们将耐久度大的瓶子放在后面射击,那么 \(x\) 就会较大,因而导致最终的射击次数变大。 说到这儿,思路已经显而易见了。我们可以对 \(a\) 数组根据耐久度 ......
题解 1570C 1570 CF

P8029 [COCI2021-2022#3] Akcija 题解

注:这篇题解中涉及到的所有概念均会在其第一次出现时用 斜体 标出,有些概念给出了定义,而有些概念的含义请自行意会。 定义 状态 为选了的物品数 \(a\) 与相应总价格 \(b\) 的二元组 \((a,b)\)。相应地定义状态之间的 大小关系、最优状态 与状态和状态的 加法运算 \((a_1,b_1 ......
题解 Akcija P8029 8029 2021

$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

P9502 题解

普通模拟的别的题解应该都有了,现在我来介绍一种不同寻常的偷懒方法! 思路分析 确定最大值 题目要我们求 \(2^m\) 次方,常规的方法是对于 \(m\) 一个一个试过去,最终找到答案。 但是,我们可以发现,\(m\) 不就是 \(\log_2 n\) 嘛!(不考虑偶数和小于的条件下) 所以我们可以 ......
题解 P9502 9502

P9503 题解

一道简单的模拟题尽管我花了好久才写出来。 思路分析 我们可以知道,如果想让背景为某个颜色,那么颜色前面的所有幕布都需要被拉起来,而这个颜色的幕布则需要被放下。 所以我们对于每次操作,只需检查一遍它前面的幕布和这块幕布的状况即可。 程序实现 #include <bits/stdc++.h> using ......
题解 P9503 9503

CF285B 题解

不可多得的小清新模拟题! 思路分析 题目中已经暗示地很明显了,只能对 \(x\) 进行操作使得 \(x\) 变成 \(p_x\)。 而我们现在可以操作的值唯独 \(s\),所以我们的思路就呼之欲出了。 我们重复将 \(s\) 迭代为 \(p_s\)。如果 \(s=t\),那么我们就找到了答案。如果 ......
题解 285B 285 CF

UVA1030 题解

思路分析 猜想 我们可以在题目中看出一下几个突破口: 能“看穿”的位置所对应的单位立方体是一定不存在的。 如果前视图的右上角的颜色 \(A\) 和顶视图的的右下角颜色 \(B\) 不同,那么对应的格子就一定不存在。 在删除这个立方体后,我们还可以发现,挖去立方体的左侧和 \(B\) 左侧的颜色不同。 ......
题解 1030 UVA

CF1252A 题解

思路分析 前置知识:排列是没有重复元素的! 猜想 我们可以进行一种猜想,对于 \(x\),输出: \[\begin{cases} x+1&x<N\\ 1&x=N \end{cases}\]将代码提交上去,我们可以发现这种猜想值正确的! 证明 但是作为一名合格的 OIer我们必须证明这种做法是正确的。 ......
题解 1252A 1252 CF

CF387B 题解

思路分析 因为最终要使得 \(a,b\) 相同,所以我们应该希望让相同的数字尽量相同。所以,我们需要先对 \(a\) 和 \(b\) 进行排序,这样子就可以使用双指针的方法来维护最终值了。 我们定义 \(l\) 指针指向 \(a_l\),\(r\) 指针指向 \(b_r\)。因为题目要求添加数字的次 ......
题解 387B 387 CF

CF431B 题解

思路分析 答题思路 一道纯暴力题! 因为我们发现数据最大是 \(5\),而枚举全排列的时间复杂度为 \(\mathcal O(n!)\),对于这种极小的数据范围是丝毫不用顾虑的,因为我们只需要执行 \(120\) 次。 如何快速求出一个数组的全排列? 我们可以使用 dfs,一层一层获取这个数组的全排 ......
题解 431B 431 CF

P9516 题解

思路分析 一道很有洛谷个性的模拟签到题。 按照题意,我们只需读入 \(a,b,c,d,e\),然后对其进行求和,然后依次根据 洛谷咕值系统介绍 进行判断即可。 这样是不是太没有意思了?今天为大家带来一点干货作为福利! 介绍:accumulate() 函数! 简略分析:这个函数可以求出一段区间内的数字 ......
题解 P9516 9516

P9516 题解

思路分析 一道很有洛谷个性的模拟签到题。 按照题意,我们只需读入 \(a,b,c,d,e\),然后对其进行求和,然后依次根据 洛谷咕值系统介绍 进行判断即可。 这样是不是太没有意思了?今天为大家带来一点干货作为福利! 介绍:accumulate() 函数! 简略分析:这个函数可以求出一段区间内的数字 ......
题解 P9516 9516

P9517 题解

思路分析 我们只需要找到左边第一个大于 \(0\) 的位置 \(l\) 与右边第一个大于 \(0\) 的位置 \(r\),输出 \(r-l+1\) 即可。 但是很坑的一点是,如果 \(∀i∈[1,n],a_i=0\),那么 \(l\) 和 \(r\) 会重合,代码会输出 \(1\)!所以,我们需要定 ......
题解 P9517 9517

UVA11210 题解

思路分析 一道大模拟。 一共只有 \(34\) 种牌,因此可以一次判断是否“听”这些牌。比如,为了判断是否“听”一万,只需要判断自己拿到这张一万后能否可以继续和牌。这样,问题就转化成了给定 \(14\) 张牌,判断是否可以和牌。为此,我们可以递归求解:首先将两张牌作为“将”,然后每次选 \(3\) ......
题解 11210 UVA

UVA11464 题解

思路分析 暴力枚举? 我们可以枚举每个数字变或不变,最后判断整个矩阵是否满足条件。但是,这样做最多需要枚举 \(2^{255}≈5\times10^{67}\) 中情况,是一定会超时的。 大眼观察 注意到 \(n\le15\),第一行只有不超过 \(2^{15}=32768\) 种可能,所以第一行的 ......
题解 11464 UVA

UVA1352 题解

思路分析 构造排列表 立方体只有 \(4\) 个,暴力法是可行的。但是如果我们要暴力,首先得清楚一个立方体到底有几种不同的旋转方式。 接下来,我们用“姿态”一词代替“旋转方法”。假设 \(6\) 个面的编号为 \(1\sim6\),从中选择一个面作为“顶面”,“顶面”的对面为“底面”。然后我们在剩下 ......
题解 1352 UVA

题解 SP4586 Texas Trip

首先题目翻译是有问题的,求的不是矩形而是最小的正方形。 Solution 先考虑一下若正方形的边都只能平行于坐标轴怎么做:找到 \(x,y\) 方向的坐标最值,那么答案就是 \(\max^2\{X_{\max}-X_{\min},Y_{\max}-Y_{\min}\}\)。 接下来,若正方形可以是斜 ......
题解 Texas 4586 Trip SP

题解 P8389【[COI2021] Izvanzemaljci】

(本题解的所有图片使用 Geometry Widget 进行绘制) (一)\(K=1\) 情况 \(K=1\) 是平凡的。 (二)\(K=2\) 情况 显然,对于平面内的两个不交正方形,存在至少一条平行于坐标轴的直线将它们划分到两侧。 以直线平行于 \(y\) 轴为例。 考虑按 \(x\) 轴正方向 ......
题解 Izvanzemaljci P8389 8389 2021

「题解」P9558 [SDCPC2023] Trie

orz negiizhao 自底向上确定每个点的所有出边上挂的字符,那么问题就是比较 \(x,y\) 两个子树的字典序大小。直接一起往下 dfs,先找到标记点的子树更小,如果 dfs 过程中一棵树找完了而另一棵树没找完并且还没确定大小,这时还没找完的那棵树应当排到前面。在递归的最浅层也就是比较 \( ......
题解 P9558 SDCPC 9558 2023

[EDISOI] Round 1 题解

写在前面的话 本场比赛难度估计大约可能是 \(\text{NOIp}\) 难度? 考场得分 \(100+100+100+0=300\) ,封榜时排名 \(\text{rank6}\) 。 T1 题目描述: 有一张地铁交通网 \(G\).\(G\) 拥有 \(n\) 个站点和 \(m\) 条地铁线路. ......
题解 EDISOI Round

[ABC319E] Bus Stops 题解

[ABC319E] Bus Stops 题解 题意简介 给定 \(n\) 个公交站。对于第 \(i\) 个公交站,在时刻 \(p_i \times k,k \in \mathbb{N}\) 有一辆公交车出发,在经过 \(t_i\) 的时间后,到达第 \(i+1\) 个公交站。 在走到第一个公交车之前 ......
题解 Stops 319E ABC 319

【题解】 AtCoder Beginner Contest 319

没有写 F,不确定我的做法对不对。 评价:什么牛逼场次,代码大赛是嘛,从 A 开始就感觉到不对了,而且题面写的真答辩。 A.Legendary Players 题目分析: 直接按题目模拟即可。 代码: 点击查看代码 #include<bits/stdc++.h> using namespace st ......
题解 Beginner AtCoder Contest 319

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