AHOI
P4447 [AHOI2018初中组] 分组
首先组越少越好,只有必须新开一组时才会开,即每组都加入过了相同的实力值。排序后扫一遍,维护当前分组方案,尽量加入人数少的组,如果某些组已经连续不下去了就更新最少人数。 因为人是一个一个加的,所以组的信息具有单调性(第一维是当前最大实力值,第二维是当前人数),可以用双端队列 \(O(n)\) 维护。 ......
P4396 [AHOI2013] 作业
题意 给定一个序列,每次询问求: 在区间 \([l, r]\) 中,大小在 \([a, b]\) 中数的个数与种类数。 Sol 对于第一问直接离线跑树状数组二维偏序。 第二问考虑莫队,发现只需要维护莫队那个表示种类的数组的区间和就行了。 要求 \(O(1)\) 修改的话,写个值域分块? Code # ......
P5227 [AHOI2013] 连通图
P5227 [AHOI2013] 连通图 (膜拜并感谢 @Genius_Z 给予本题解思路) 因为这一题是线段树合并板题,所以我们使用 LCT。 考虑最暴力的想法,维护一棵树和很多不在树上的边,每一次询问就暴力拆边,从那些没有被禁的边里面补到树上。 这个时候我们就会发现,每次 “补边” 的操作非常的 ......
[HNOI/AHOI2018] 转盘
首先可以发现一定不会停下,因为把停下的时间转化为开头往前挪一步不会使得其他物品的限制变紧 考虑在最后一次经过某个物品时取这个物品,那么枚举终点进行一个时光倒流,断环为链后相当于从 \([n+1,2n]\) 的某个位置出发,一直往前走,使得经过物品 \(i\) 的时间 \(\ge T_i\) 设终点为 ......
P5227 [AHOI 2013] 连通图
P5227 [AHOI 2013] 连通图 线段树分治板子题。 根据套路,先将所有操作离线,用线段树分治将删边转化为加边后撤销。 具体而言,记录每个操作有效的时间段,插入到线段树上对应的区间。用可撤销并查集维护连通性,用栈记录已经进行过的操作,以便之后进行撤销。感觉说的了很多没用的,具体还是看代码吧 ......
[AHOI2002] Kitty猫基因突变
我们不妨将所有权值打到一棵树上,这很容易想到。 考虑暴力,如果我们选择了 \(w\) 个点,修改后我们会从叶子节点依次合并去计算贡献。 很显然我们可以动态规划维护。 \(f[p][w][0/1/2]\) 表示选了 \(w\) 个点,后整个区间的状态为 \(0/1/2\) 。 0 和 1 表示整个区间 ......
P4437 [HNOI/AHOI2018] 排列
P4437 [HNOI/AHOI2018] 排列 Solution \(a_i \to i\) 连边,出现环则无解,否则因为 \(1 \sim n\) 每个点入度为 \(1\),一定会构成森林。 安排点 \(1 \sim n\) 的选取顺序,使得父节点总是比子节点先选。记点 \(i\) 的选取时间为 ......
P4396 [AHOI2013] 作业
Link 这是一道恶心至极的莫队套分块题。 考虑维护一个莫队,维护在 \([l,r]\) 值域下的答案。 考虑维护一个值域分块,维护在只余下 \([a,b]\) 的答案。 单点修改对答案带来的变化: \(ans1\) 块:直接在 \(pos\) 位置上面做一个修改操作,然后去 \(\Theta(1) ......
[AHOI2022] 排列
题目链接 Statement 对于一个长度为 \(n\) 的排列 \(P = (p_1, p_2, \ldots, p_n)\) 和整数 \(k \ge 0\),定义 \(P\) 的 \(k\) 次幂 \[P^{(k)} = \left( p^{(k)}_1, p^{(k)}_2, \ldots, ......
【差分约束】P7624 [AHOI2021初中组] 地铁 题解
P7624 令 \(d_i\) 表示 \(1\) 号车站到 \(i\) 号车站的距离,\(len\) 表示环形地铁的总长度。 考虑题中给的条件: \(type_i = 0\) 时,若 \(u_i < v_i\),即可表示为 \(d_{v_i} - d_{u_i} \ge L_i \iff d_{u_ ......
P2542 [AHOI2005] 航线规划 答辩做法
洛谷上是可以过掉的。NFLSOJ上加强数据,还卡常,所以 90pts。 首先倒着做很好想。对于最终的图,我们可以 tarjan 缩点然后建树,边权为 \(1\),表示一条割边。然后每次连两个点的时候就把树上这一段路径赋值为 \(0\)。查询就是树上路径和。这些操作都可以点赋边权然后树剖来做。所以你就 ......
P4425 HNOI/AHOI2018 转盘
Day 21。 容易发现最优解里一定存在一种方案,为「一开始停留一段时间,然后一直往下一个取」的形式。通过调整容易证明。 断环成链,直接列出式子: \[\text{ans}=\min\limits_{n\le i<2n}\max\limits_{i-n< j\le i}a_j-j+i \]令 \(t ......
P4396 [AHOI2013] 作业
经典的莫队+值域分块 虽然直接用莫队+树状数组也是能过的 贴个板子 #include<algorithm> #include<cstdio> #include<cstring> #include<vector> #include<queue> #include<map> #include<cmath ......
洛谷 P3719. [AHOI2017初中组] rexp
[AHOI2017初中组] rexp 题目背景 为了解决形形色色的字符串匹配问题,正则表达式是一个强有力的工具。正则表达式通过定义一套符号体系,能够表示出需要查找的字符串所具有的性质。如 a|aa 能匹配 a 或 aa,(a|b)c 能匹配 ac 或 bc。 题目描述 完整的正则表达式过于复杂,在这 ......
P2532 [AHOI2012] 树屋阶梯
原题 有点被降智了,但降得不多 我先说我的\(TLE\)做法把 设\(dp_{i,j}\)表示楼梯第一行长\(i\),最后一行长\(j\)的划分方案数 我们每次看覆盖掉左下角的矩形的右上角覆盖位置,可以得到递推式: \[dp_{i,j} = \sum_{k=i}^{j}{dp_{i,k-1} \ti ......
P4042 [AHOI2014/JSOI2014] 骑士游戏
[原题](https://www.luogu.com.cn/problem/P4042) 非常好的一道题,用到了一个重要的思路:消除$dp$的后效性 不要觉得这个东西很恐怖,其实这个东西并不复杂,只是名字有点吓人 我们容易想到对把原题抽象成一个图,我们容易想到如果该图为$DAG$我们要怎么做,直接拓 ......
NC19872 [AHOI2005]SHUFFLE 洗牌
[题目链接](https://ac.nowcoder.com/acm/problem/19872) # 题目 **题目描述** 为了表彰小联为Samuel星球的探险所做出的贡献,小联被邀请参加Samuel星球近距离载人探险活动。 由于Samuel星球相当遥远,科学家们要在飞船中度过相当长的一段时间, ......
P2023 [AHOI2009] 维护序列题解
## 题目描述 ![image](https://img2023.cnblogs.com/blog/2940791/202308/2940791-20230814203425127-2079550841.png) ## 思路 我们可以想到用线段树, 然后维护两个懒标记 $\text{add, mul ......
P4426 [HNOI/AHOI2018] 毒瘤 题解
# P4426 [HNOI/AHOI2018] 毒瘤 题解 非常好虚树题目,融合了容斥的内容。 ## 简化题意 给定一张 $n$ 个点、$m$ 条边的图,求图的独立集个数。其中 $n \leq 10^5$,$n-1 \leq m \leq n+10$。 独立集:对于图 $G(U, E)$ 的一个点集 ......
P3717 [AHOI2017初中组] cover
# [AHOI2017初中组] cover ## 题目背景 以下为不影响题意的简化版题目。 ## 题目描述 一个 $n\times n$ 的网格图(标号由 $1$ 开始)上有 $m$ 个探测器,每个探测器有个探测半径 $r$ ,问这 $n\times n$ 个点中有多少个点能被探测到。 ## 输入格 ......
HDU4841 AHOI1999 圆桌问题 题解
朴素的约瑟夫问题,用vector处理即可 #include <iostream> #include <vector> using namespace std; //AHOI1999 圆桌问题 类似于约瑟夫问题 vector<int>table; int n, m; int main() { whil ......
[P5228 [AHOI2013] 找硬币]题解-DP
20230718 [传送门](https://www.luogu.com.cn/problem/P5228 "传送门") 发现$a_i$和$n$都很小 也就是说我的面值最大是$10^5$ 这样最大面值就可以用来做下标 其实最开始也不知道怎么做 我们现在考虑dp $dp[i]$表示最大面值为$i$时的 ......
题解 P8338 [AHOI2022] 排列
恶心题。 每次操作,相当与把第 $i$ 个数置换到 $p_i$,于是可以连边。 因为 $i$ 和 $p_i$ 互不相同,所以对于每一个点,有且仅有一条出边和一条入边,即若干个简单环。 那么最少操作 $\operatorname{lcm}(a_1,a_2,a_3...a_{x-2},a_{x-1},a ......
P8339 [AHOI2022] 钥匙 思考--zhengjun
很容易考虑到计算贡献。 > 该问题的关键在于——如何使得钥匙和宝箱的对应关系不算重 > Warning:有这样的二元对应关系,可以考虑一下转化为括号序列! 转化为括号序列之后,发现路径上括号串的对应关系能够预处理出来。 套个虚树和扫描线,就做完了。 ### 代码 ```cpp #include us ......
P4042 [AHOI2014/JSOI2014] 骑士游戏
## Description 在这个游戏中,JYY 一共有两种攻击方式,一种是普通攻击,一种是法术攻击。两种攻击方式都会消耗 JYY 一些体力。采用普通攻击进攻怪兽并不能把怪兽彻底杀死,怪兽的尸体可以变出其他一些新的怪兽,注意一个怪兽可能经过若干次普通攻击后变回一个或更多同样的怪兽;而采用法术攻击则 ......
P4039 [AHOI2014/JSOI2014] 拼图
## Description JYY 最近迷上了拼图游戏。作为一个计算机科学家,JYY 有一套黑白色的拼图,他希望通过合理的拼接,使得拼出的最终图案中,能包含面积最大的全白色子矩形。JYY 一共有 $S$ 块拼图,并且由 $1$ 到 $S$ 编号。编号为 $i$ 的拼图是一个 $N$ 行的方格矩形, ......
[AHOI2014/JSOI2014] 骑士游戏
# [AHOI2014/JSOI2014] 骑士游戏 观察性质: 1. 对于一类怪兽,要么全部使用普通攻击,要么全部使用魔法攻击。 2. 若对怪兽 $i$ 满足 $s_i > k_i$,则必使用魔法攻击。 3. 若按照怪兽的生成关系连有向边建图,则一个环内 $k$ 值最小的怪兽必使用魔法攻击。 注意 ......
洛谷P8341 [AHOI2022] 回忆
# [AHOI2022] 回忆 ## 题目背景 生活在题面里的他们,是一群怪异的少年。 对城市中修建道路需满足的基本物理限制熟视无睹,沉迷于十万个城市、百万条道路上的各种结构。 明明知道真正需要的数字庞大到无法计算,却偏要关心它模一个奇怪素数之后得到的结果。 如此智力超群的他们,却总是在自己提出的诡 ......
题解 Luogu P4248 [AHOI2013]差异
这是一个 SAM 做法。 显然只要求 $\sum\limits_{1\le i < j \le n}\operatorname{lcp}(i,j)$。 考虑 $T_i, T_j$ 在 SAM 上的两条链。显然,这两条链可以被表示为 $1 \rightarrow P, P \rightarrow x, ......