题解stations radio 762e

【模板】堆 题解

题目传送门 一道小根堆模板题。 在做这道题之前,我们先介绍一下小根堆是什么。 我们定义小根堆是一种对于任何一个父结点的权值总是小于或等于子节点权值的完全二叉树。因此,不难看出,一个小根堆的堆顶(这棵树的根节点)应该是这个堆(树)中权值最小的结点。 简单介绍完了小根堆,我们再介绍下如何存储。 存储 我 ......
题解 模板

【ABC298C】题解

思路 一道很好的复习数据结构的题。 对于第 $1$ 个问答(既第 $2$ 种操作),我用一个小根堆(优先队列,$\text{priority_queue}$)来储存第 $i$ 个盒子的卡牌。 对于第 $2$ 个问答(既第 $3$ 种操作),我用一个 $\text{set}$ 来储存编号为 $i$ 个 ......
题解 298C ABC 298

Inna and Huge Candy Matrix 题解

题目传送门 一道模拟题。 先看数据范围,$x,y,z \le 10^9$ 显然会超时。不难看出,顺时针或逆时针旋转 $4$ 次和镜面对称 $2$ 次后会恢复原样,所以我们先对 $x,y,z$ 进行取余。 $$x\bmod 4,z\bmod4,y\bmod2$$ 然后我们观察一个矩阵顺时针旋转后坐标的 ......
题解 Matrix Candy Inna Huge

题解 P9320/CF::Gym104229D【[EGOI2022] Tourists】

problem 一个长为 $m$ 的数组 $a$,每个数的取值为 $[1,n]$ 的正整数;另外有一个长为 $m$ 的数组 $b$,初始全零;另外有一棵 $n$ 个点的树,求树上两点距离的函数为 $dist$。请支持三种操作: 输入 $l,r,c$,枚举 $i\in [l,r]$,使得 $b_i\g ......
题解 Tourists 104229D 104229 9320

【学习笔记】【题解】树形依赖 DP 选做

地址:https://www.cnblogs.com/FReQuenter5156/p/shuxingyilaidp.html/ 简介 这类背包本质上是分组背包问题。 将一个节点的每一棵子树看作一组,进行分组背包。所谓分组背包,即在选择物品的时候,一开始将物品分为好几组,在选择时,可以从每一组中至多 ......
树形 题解 笔记 DP

CF1816D 题解

一、题目描述: 这是一道交互题,你需要猜出一个 $1$~$n$ 的全排列 $p_1,p_2,p_3...p_n$ 。 有 $t$ 组数据,每组数据有一个整数 $n$ 表示数组的大小。 假设一开始有一个只有 $n$ 个点,没有边的图。你有 $2\times n$次询问机会,两种询问方式: 第一种:$+ ......
题解 1816D 1816 CF

CF338D GCD Table-题解(excrt)

CF338D GCD Table 个人评价:还好 算法 扩展CRT 题面 给了一张$n\times m$的矩阵,第i行j列的权值是gcd(i,j),现在有一个长度为k的序列A,问是否存在(i,j)使得$gcd(i,j+l-1)=a_l(1\leq l\leq k)$ 问题分析 我们将对应行设为x,对 ......
题解 Table excrt 338D 338

P8446 虹色的北斗七星 题解

传送门 前言: 很久之前做的一道题目了,当时并没有想出来怎么做,随便猜了个结论交上去发现过了。(~~好像还是第一道自己做出来的绿~~) 简要题意: 你有一个长度为 $n$ 的序列 $a$ ,一个区间$[l, r]$的价值定义为当前区间的极差减去区间长度,求出最大的价值。 $Solution$: 看了 ......
题解 北斗 P8446 8446

[CodeForces-545A]题解(C++)

Part I Preface 原题目(Luogu) 原题目(CodeForces) Part II Sketch 给定一个正整数 $n$,表示汽车数量。 给定一个 $n \times n$ 阶矩阵 $A$,第 $i$ 行 $j$ 列上的数字表示 $i$ 车与 $j$ 车的对撞情况。 $\begin{ ......
题解 CodeForces 545

[CodeForces-545A]题解(C++)

Part I Preface 原题目(Luogu) 原题目(CodeForces) Part II Sketch 给定一个正整数 $n$,表示汽车数量。 给定一个 $n \times n$ 阶矩阵 $A$,第 $i$ 行 $j$ 列上的数字表示 $i$ 车与 $j$ 车的对撞情况。 $\begin{ ......
题解 CodeForces 545

CF1260E Tournament 题解

妙妙题,但是感觉评不到紫。 题目链接。 题意 luogu 题意。 有 $n$ 个人,贿赂第 $i$ 个人的代价为 $a_i$。这些人中,贿赂代价为 $-1$ 的是你的朋友。现在,你可以两两配对,使得编号小的被淘汰,但是,如果你贿赂了编号大的,那么编号大的被淘汰,而编号小的留下。问:使得你朋友夺得冠军 ......
题解 Tournament 1260E 1260 CF

ABC269F 题解

前言 题目传送门! 更好的阅读体验? 题解区的方法思维难度都过大(?),提供一种极其容易的方法。 思路 题目就是求 $\sum\limits_{i=x_1}^{x_2}\sum\limits_{j=y_1}^{y_2}a_{i,j}$。所以很容易想到先算 $\sum\limits_{j=y_1}^{ ......
题解 269F ABC 269

LeetCode 27. 移除元素 题解

题目链接:LeetCode 27. 移除元素 本题大意是要对一个数组进行原地删除数值等于 val 的元素。 双指针算法: 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。 快指针(p指针):寻找新数组的元素 ,新数组就是不含有目标元素的数组 慢指针(q指针):指向更新 新数组下标的 ......
题解 LeetCode 元素 27

LeetCode 704. 二分查找 题解

##本题考查的就是一个基本的整数二分查找问题 对于整数二分,有单调性一定可以二分,没有单调性的有时候也可以二分。 ##算法思想(分为两种方法): 查找结果是在左边区间的情况 区间被划分为[l,mid]和[mid+1,r] 1、确定分界点,mid=q[(l+r)/2] 2、判断是否满足 是:区间变成[ ......
题解 LeetCode 704

华为OD机试 本篇题解:开心消消乐

最近更新的博客 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单 https://dream.blog.csdn.net/article/details/128980730 华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典 https://dream ......
题解

华为 OD 本篇题解:特异性双端队列

华为 OD 机试【4 大宝典】再次上新题! ① Python 解华为机试题 :https://dream.blog.csdn.net/article/details/129221789 ② C++ 解华为机试题:https://dream.blog.csdn.net/article/details/ ......
特异性 题解 队列 OD

洛谷P4824题解

题面 题意:给出字符串 s 和 t,每次操作将 s 中出现的第一个 t 删去,直到不能删为止。求最后的串。 |s|<=1e6 题解:hash 做法。(此题也有 kmp 和权值线段树做法) 因为涉及到删除操作,所以我们要动态的实现这个过程。所以考虑开一个栈来存储当前留下的字符。 然后每有一个字符入栈, ......
题解 P4824 4824

洛谷P7469题解

题面 题意:有两个字符串 a 和 b,问 b 中有多少个本质不同子串可以由 a 删除若干个字符得到。 |a|,|b|<=3000 题解:字典树(这个题做法很多,后补)。 把字符串 b 的每个子串打到字典树上。 然后因为 3000^2*26 这个东西比较大,所以不能用 nxt[id][26] 来存储, ......
题解 P7469 7469

CWOI 2023.05.04 题解

mzx 的动态规划杂题选讲。sto ARC153 D - Sum of Sum of Digits P7152 [USACO20DEC] Bovine Genetics G CF1542E2 Abnormal Permutation Pairs (hard version) 题意 给定 $n,m$, ......
题解 CWOI 2023 05 04

P3809 【模板】后缀排序 题解

一、题目描述: 给你一个长度为 $n$ 的字符串 ,由大小写英文字母和数字组成。请将这个字符串的所有非空后缀按字典序排序,顺序输出后缀的第一个字符在原串中的位置,编号为 $1$ 到 $n$。 二、解题思路: 板子题,我就不写思路了。我用的是 $SA$,$DC3$ 还没学。时间复杂度 $O(nlogn ......
题解 后缀 模板 P3809 3809

PA 2022 部分题解

[PA 2022] Wielki Zderzacz Termionów 有 $n$ 个球,每个球有 A、B 或 C 三种颜色。开始时你将每个 C 涂成 A 或 B。之后的每次操作,你可以选择相邻的两个 A 合并为一个 B,或选择相邻的两个 B 合并为一个 A。求将 C 涂色的方案数,满足你能够通过若 ......
题解 部分 2022 PA

题解 ARC139D【Priority Queue 2】

problem 给定 $n,m,k,x$,给定了一个有 $n$ 个元素的可重集合 $a_i\in [1,m]$,会进行 $k$ 次如下操作:选择一个数 $y\in[1,m]$ 加到 $a$ 中,并把 $a$ 中第 $x$ 小的元素删除。 有 $m^k$ 种情况,对于每种情况的价值定义为最后 $a$ ......
题解 Priority Queue 139D ARC

关于容斥原理 / P5505题解

发现很多题解连容斥原理的“钦定”和“至少”的区别都讲不清楚,误导萌新,所以写一下这两个东西的区别 “钦定”这个东西是会算重的,而“至少”不会。 举个例子吧,比如 $1\ 2\ 3$ 三个位置不合法,如果我说“钦定”两个位置不合法,那么这里计算方案的时候这个不合法的方案会被计算三次,分别是钦定 $1\ ......
题解 原理 P5505 5505

[JOI 2016 Final]断层 题解

题目链接 首先发现斜着平移比较难处理,所以考虑将平面逆时针旋转 $45°$。 接着发现风化也不好处理,但是风化的一定不会作为答案,所以我们可以离线,然后倒着处理操作,上升变为下降。 我们发现每个初始 $0$ 点最后的坐标就是它正着做时初始的坐标,且每次操作都只会将连续一段点的 $x,y$ 坐标修改。 ......
题解 断层 Final 2016 JOI

【23.05.03】好题题解

好题题解 A 题目大意: 计算一个项数为 $n$ 的多项式除以 $x^3-x$ 的余数多项式。 数据范围: 对于 $100%$ 的数据: $2 \leq n \leq 2 \times 10 ^ 5$ 解题分析: 水题,直接多项式除法模拟即可。 需要注意细节。 AC Code: # include ......
题解 23 05 03

【题解】ABC300 F,G

F.More Holidays 题目分析: 考虑刻画一下我们选择是什么样子的。 考虑我们最后选择的 $T$ 中的一段一定是形如:一个完整的 S 选择一个后缀 $+$ 若干个完整的 S $+$ 一个完整的 S 的前缀。 这样的话就启示我们直接枚举这个前后缀选择的是什么,然后就可以很快算出来了,但是枚举 ......
题解 ABC 300

[POI2005]SAM-Toy Cars 题解(贪心+堆)

题面 首先考虑一个贪心策略:当地板已经放满需要取出一个时,取下一次使用时间 $nxt$ 最晚的那个。 所以我们只需要一个可以快速求出一个集合中 $nxt$ 最小的点并删除,插入新点的数据结构,这里很容易想到堆。 代码很简洁,注意数组的下标是位置还是颜色(考场 100 pts 到 0 pts)。 co ......
题解 SAM-Toy 2005 Cars POI

Cashier 题解

题目传送门 一道贪心题。 我们可以记录每一位客人离开的时间,当下一位客人来临时,他们之间空闲的时间就是我们休息的时间。 for (int i = 1; i <= n; i++) { int t, l; cin >> t >> l; ans += (t - endt) / a; endt = t + ......
题解 Cashier

Valhalla Siege 题解

题目传送门 一道二分题。 先观察数据范围,$1\le n,q\le 200,000$,显然需要 $O(n\log n)$ 的复杂度。且 $1\le k_i\le 10^{14}$,需要开 long long。 我们需要二分到第一个血量大于伤害值的武士的位置,前面的武士都死了。而在 C++ 算法库中, ......
题解 Valhalla Siege

[ABC213D] Takahashi Tour 题解

题目传送门 一道 dfs 序题。 题目中高桥每次只会去最小的那个点,所以要先对整张图进行排序。 for (int i = 1; i <= n; i++) sort(g[i].begin(), g[i].end()); 然后考虑 dfs。高桥不会走重复的点,所以我们可以开一个 vis 数组进行标记。然 ......
题解 Takahashi 213D Tour ABC