RMQ | ST 表 | 树状数组 学习笔记
摘要:
前言 前段时间没啥空写博客,今天汇总一下这几天学的几种数据结构。 Part1. ST 表 ST 表是用于求解 RMQ(区间最值) 问题的一种数据结构,使用了倍增的思想,时间复杂度 。 本人认为 ST 表很类似区间 dp。 有一个数组 ,假设现
P2107 小Z的AK计划 题解
摘要:
题目传送门 分析 考虑一个贪心,由于 呈线性排列,我们一定要保证去到的机房越多越好,所以将 排序,每次前往最近的机房,如果可以 AK 则 AK,累加答案。 代码实现 我相信我的解法一定有漏洞,欢迎各位 dalao 来 hack。 #include <bits/stdc++
CF1637A Sorting Parts 题解
摘要:
题目传送门 题意简述 给你一个长度为 的数组 ,你可以选择 的一个数 ,分别对 和 排序,如果存在一个 能使数组非升序输出 YES,否则输出 NO。 分析 这题我的考场
P8152 「PMOI-5」破译の论 题解
摘要:
题目传送门 分析 第一次划分会变成 块,之后每次划分都会增加 块(减一是因为自己那一块不能重复算),所以答案就是 。 需要注意一下取模。 代码实现 #include <bits/stdc++.h> using namespa
CF399B Red and Blue Balls 题解
摘要:
题目传送门 分析 本题暴力解法会 TLE,所以我们需要进一步分析。 定义状态 表示把前 个球全部变为红色的步数,那么如果第 个球是蓝色的话,我们需要做如下操作: 把前 个球弹出; 把第 个球变成红色; 把第 个球前面填上
CF1631A Min Max Swap 题解
摘要:
题目传送门 题意简述 给定数组 和 ,可以交换下标相同的两个元素。让 数组的最大值和 数组的最大值之积最小。 分析 想象一个长方形,它的周长是固定的,那怎么分配长和宽才能让面积尽可能的小呢? 就假设周长是 ,则长宽之和是 ,列下表格
P3831 [SHOI2012]回家的路 题解
摘要:
题目传送门 分析 解法 1: 每两个点都连边,跑裸的最短路。 显然, 和 非常大,暴力连边会 TLE 和 MLE。 解法 2(正解): 首先,对答案产生贡献的只有换乘站,所以我们只用连两种边: 一个换乘站看作 个节点,连边,边权为 (站内换乘)。 将 \(
P1197 [JSOI2008]星球大战 题解
摘要:
题目传送门 题意简述 给定一张无向图,每次删去一个节点,问每次操作后的连通块个数。 分析 ,如果每次暴力删点再 bfs,必定超时。 还记得上次提到的 [USACO16OPEN]Closing the Farm 吗?这两题非常非常相似,我
P1137 旅行计划 题解
摘要:
题目传送门 题意简述 给定一张有向图,起点任意,求出到每个点经过的最多点数和。 分析 先把图画出来: 一开始做这题的时候以为是非常简单的最短(长)路,但是发现起点是任意的,没有源点,所以我们就不能用 SPFA 啦反正都死了( 事实上,我们可以对这张图进行拓扑排序,将入度为 的节点 \(d
P1396 营救 题解
摘要:
题目传送门 分析 这题有好几种方法可以做,有跑最短路的,有些最小生成树的。这里介绍最短路的方法。 单源最短路径,很自然地想到 Dijkstra。不过题目要求的是最大值最小,所以松弛就要改成: if(dis[v]>max(dis[u],e[i].w)) dis[v]=max(dis[u],e[i].w