HNOI

P3243 [HNOI2015] 菜肴制作 题解

前言 今天考试考到这道题,挂惨了。 题意 有 \(n\) 道菜肴,编号为 \(1 \sim n\)。有 \(m\) 个条件,形如 \((i, j)\),表示菜肴 \(i\) 必须在菜肴 \(j\) 之前制作。需求出一个菜肴的制作顺序,满足: 在满足所有限制的前提下,\(1\) 号菜肴尽量优先制作。 ......
题解 菜肴 P3243 3243 2015

P3228 [HNOI2013] 数列

题意 给定 \(n\)、\(m\)、\(k\) 和 \(p\),要求在 \(n\) 中取 \(k\) 个数,并且相邻的两个数字差小于等于 \(m\),最后对 \(p\) 取模。 思路 如果直接考虑求出这个数列的话,过程相对麻烦,实现起来比较困难,所以不妨换一种思路。 注意题目中有一个非常特殊的数据: ......
数列 P3228 3228 2013 HNOI

P3233 [HNOI2014] 世界树

题意: 给定一棵树,有两类点,特殊点与普通点,每个点被离他最近的特殊点管理(距离相同以编号最小的为准),有 \(Q\) 个询问,每个询问形如 \(k,s_{1},s_{2},...,s_{k}\),表示这 \(k\) 个点为特殊点,询问每个特殊点能管理的点的数量。 \(\sum k \le 3 \t ......
世界 P3233 3233 2014 HNOI

HNOI2017影魔题解

HNOI2017 影魔 对于两种贡献,都只用考虑左边第一个比自己大的,和右边第一个比自己大的数,分别记为 \(l_i、r_i\) 对于询问一,每个数对 \((l_i,r_i)\) 构成全部情况 对于询问二,可以拆分成 \(x=l_i\) 时,\(y \in [i+1,r_i-1]\) ,以及 \(y ......
题解 HNOI 2017

[HNOI2008] 玩具装箱

[HNOI2008] 玩具装箱 题目描述 P 教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京。他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中。 P 教授有编号为 \(1 \cdots n\) 的 \(n\) 件玩具,第 \(i\) 件玩具经过压 ......
玩具 HNOI 2008

P3243 [HNOI2015] 菜肴制作 の 题解

本题是我的第一道蓝题,故我认为这道题稍难。 在本题解中,会列出一些坑点供大家参考。 这道题由优先制作这一关键词可知是一道拓扑排序的题,于是我想用邻接矩阵,但是我交之后错了,那是因为普通的数组会爆,但我不喜欢写链式前向星,故使用了vector的二维数组。 但是这道题比较特殊,由教练提醒,这道题需要跑反 ......
题解 菜肴 P3243 3243 2015

P3227 [HNOI2013] 切糕

题意 link Sol 考虑不戴限制的情况,那就是对于每一层连到下一层跑网络流。 考虑戴上添边,不难发现向相邻的点连一条 \(inf\) 边就行了。 Code #include <iostream> #include <algorithm> #include <cstdio> #include <a ......
P3227 3227 2013 HNOI

[HNOI2009] 梦幻布丁

[HNOI2009] 梦幻布丁 题目描述 $n$ 个布丁摆成一行,进行 $m$ 次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。 例如,颜色分别为 $1,2,2,1$ 的四个布丁一共有 $3$ 段颜色. 输入格式 第一行是两个整数,分别表示布丁个数 $n$ 和操作次 ......
布丁 梦幻 HNOI 2009

P3205 [HNOI2010] 合唱队

原题链接 导入 1.对于一个给定的序列,最后一个加进来的元素不是最左端就是最右端,如果是最左端,那么代表去掉最左端的序列中最后一个加进来的元素比最左端小,最右端同理。 2.对于一个给定的序列,可能的排序结果无非两类,一类是以最左端的元素结尾的,一类是以最右端的元素结尾的。因此设\(sum[i][j] ......
合唱队 P3205 3205 2010 HNOI

P3214 [HNOI2011] 卡农 题解

Description 给定 \(n,m\),要从 \(1,2,\dots,2^n-1\) 中选 \(m\) 个无序的数,使得他们互不相同且异或和为 \(0\),问有多少种选法。 对 \(998244353\) 取模。 Solution 考虑求出有序的方案数的个数再除以 \(m!\)。 设 \(f_ ......
卡农 题解 P3214 3214 2011

P2234 [HNOI2002] 营业额统计

P2234 [HNOI2002] 营业额统计 题解思路 对原数组排序,记录下排序前的位置。 对排序后的数组构造链表。 从原数组的 \(n\) 往 \(1\) 枚举,比较排序生成链表中该元素的前驱或后继与该元素差值的最小值,加入答案。 在排序生成的链表中删除该元素。 正确性的疑惑 一开始很困惑,难道排 ......
营业额 P2234 2234 2002 HNOI

## [HNOI2010] 取石头游戏题解

[HNOI2010] 取石头游戏 前言: 个人感觉这道题很有难度,很有思维,这种博弈方式也值得积累。 正文: 确定博弈:首先你得知道,很多博弈题目都是假的,可能是贪心啊什么的。这道题看起来是两个人都想要自己的得分更大,但是实际上为了让自己得分更大,就必须让对方在对方的回合中取的少一些。因此这肯定是博 ......
题解 石头 HNOI 2010

P3201 [HNOI2009] 梦幻布丁

[HNOI2009] 梦幻布丁 题目描述 \(n\) 个布丁摆成一行,进行 \(m\) 次操作。每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色。 例如,颜色分别为 \(1,2,2,1\) 的四个布丁一共有 \(3\) 段颜色. 数据范围 对于全部的测试点,保证 \(1 \l ......
布丁 梦幻 P3201 3201 2009

【题解】HNOI2012 - 集合选数

HNOI2012 - 集合选数 https://www.luogu.com.cn/problem/P3226 不算难的非显然状压 dp。 首先根据限制条件建图,\((x,2x),(x,3x)\) 连边,表示边上相邻两个点不能同时选,然后一组独立集就是一个可行的集合。 发现画出来的图是若干个部分网格图 ......
题解 HNOI 2012

[HNOI2015] 开店

妈的,杀软动态点分治。 你考虑建出点分树,然后把所有子树塞进该点。 根据经典结论 \(\sum dep_x = \sum sz_x = n\log n\) 然后我们考虑每次按照 \(v\) 来排序,做前缀和,然后我们发现每次我们只需要查询一段区间和,使用二分查找即可。 注意容斥,具体来说,就是考虑在 ......
HNOI 2015

P3202 [HNOI2009] 通往城堡之路

考虑将每个支撑点都先设成其下限高度,即 \(h_i\gets h_1-(i-1)\times d\),这样就只会提高某些支撑点的高度。 显然每次提高的是一个后缀。提高某个后缀的贡献是当前高度低于原先高度的支撑点数量减去当前高度不低于原先高度的支撑点数量。选择贡献最大的后缀直到最后一个支撑点的高度等于 ......
城堡 P3202 3202 2009 HNOI

P3722 [AH2017/HNOI2017] 影魔

题目链接 Part1 先想暴力,对于每次询问,可以直接 \(\Theta(n^2)\) 枚举数对,用 \(ST\)表 判断一下,复杂度为 \(\Theta(qn^2)\)。 发现枚举数对没有前途,考虑 \((i,j)\) 之间的最大值,发现一个数对产生的贡献只和区间的最大值有关,我们从这个最大值入手 ......
2017 P3722 3722 HNOI AH

解题 [HNOI2008] GT考试

题目:[HNOI2008] GT考试 阿申准备报名参加 GT 考试,准考证号为 \(N\) 位数\(X_1,X_2…X_n\ (0\le X_i\le 9)\),他不希望准考证号上出现不吉利的数字。 他的不吉利数字\(A_1,A_2,\cdots, A_m\ (0\le A_i\le 9)\) 有 ......
HNOI 2008

[HNOI/AHOI2018] 转盘

首先可以发现一定不会停下,因为把停下的时间转化为开头往前挪一步不会使得其他物品的限制变紧 考虑在最后一次经过某个物品时取这个物品,那么枚举终点进行一个时光倒流,断环为链后相当于从 \([n+1,2n]\) 的某个位置出发,一直往前走,使得经过物品 \(i\) 的时间 \(\ge T_i\) 设终点为 ......
转盘 HNOI AHOI 2018

洛谷 P2290 [HNOI2004] 树的计数(Prufer序列,Cayley 公式)

传送门 解题思路 关于Prufer序列的构造,见OI-wiki 这里直接放结论: 一个Prufer序列与一个无根树一一对应 度数为 \(d_i\) 的节点在序列中出现了 \(d_i-1\) 次 \(\sum(d_i-1)=n-2\) n个点的完全图的生成树有 \(n^{n-2}\) 种 所以相当于 ......
序列 公式 Cayley Prufer P2290

[HNOI2016] 网络

[HNOI2016] 网络 题目描述 一个简单的网络系统可以被描述成一棵无根树。每个节点为一个服务器。连接服务器与服务器的数据线则看做一条树边。两个服务器进行数据的交互时,数据会经过连接这两个服务器的路径上的所有服务器(包括这两个服务器自身)。 由于这条路径是唯一的,当路径上的某个服务器出现故障,无 ......
网络 HNOI 2016

P3233 [HNOI2014] 世界树

将关键点以深度为第一关键字,编号为第二关键字从小到大排序。 建完虚树后依次考虑这些关键点可能的管辖的结点。每次在虚树上向上跳,当遇到某个已经被访问过的结点时,根据我们的排序条件,显然再往上的结点就一定不是当前关键点管辖的了。但是在向上跳的这条链上的子树内的结点不一定由当前关键点管辖,也有可能由管辖上 ......
世界 P3233 3233 2014 HNOI

P3217 [HNOI2011] 数矩形

P3217 [HNOI2011] 数矩形题解 前言 提交记录 本题其实并不是非常难想,那么为什么本蒟蒻还交了那么多发呢? cal 函数求平方的时候传值未开 long long ,我谔谔。 正文 题面省流:给定 $n$ 个点求最大举行的面积,矩形的边可以不与坐标系垂直。 如果每次枚举矩形的四个点的话, ......
矩形 P3217 3217 2011 HNOI

P3239 [HNOI2015] 亚瑟王

P3239 bzoj #4008 根据期望的线性性,我们设 \(E_i,P_i\) 分别表示第 \(i\) 张卡牌期望造成伤害和第 \(i\) 张卡牌被选择的概率。我们可以知道: \[\begin{align} Ans &= \sum\limits_{i=1}^{n} E_i \\ &= \sum\ ......
P3239 3239 2015 HNOI

[HNOI2010] 平面图判定-平面图性质、带权并查集/2-sat

[HNOI2010] 平面图判定-平面图性质、带权并查集/2-sat https://www.luogu.com.cn/problem/P3209 题意:给一张 \(n\) 个点,\(m\) 条边的哈密顿图,并且哈密顿回路已知,问是否是平面图,\(T\) 组询问。 \(1\leq T\leq 100 ......
平面图 平面 性质 HNOI 2010

P4437 [HNOI/AHOI2018] 排列

P4437 [HNOI/AHOI2018] 排列 Solution \(a_i \to i\) 连边,出现环则无解,否则因为 \(1 \sim n\) 每个点入度为 \(1\),一定会构成森林。 安排点 \(1 \sim n\) 的选取顺序,使得父节点总是比子节点先选。记点 \(i\) 的选取时间为 ......
P4437 4437 2018 HNOI AHOI

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 ......
转盘 P4425 4425 2018 HNOI

P3188 [HNOI2007] 梦幻岛宝珠-题解

20230918 P3188 [HNOI2007] 梦幻岛宝珠 Statement 01背包, \(n \le 100\),但是容量 \(m \le 2^{30}\)。 物体的体积可以写成 \(a \times 2^b(a \le 10,b \le 30)\) Solution 发现 \(W\) 太 ......
宝珠 题解 梦幻 P3188 3188

P3200 [HNOI2009] 有趣的数列

原题 这题我\(O(n^2)\)的做法竟然没有想出来,反思QwQ 首先\(O(n^2)\)的做法很好想,我们考虑从小到大往数组里填数,显然我们要求任何时刻编号为奇数的位置要填的比编号为偶数的位置要不少才行 于是我们设\(dp_{i,j,k}\)表示填了前\(i\)个数,奇数位填的个数为\(j\),偶 ......
数列 P3200 3200 2009 HNOI

P3214 [HNOI2011] 卡农

原题 首先我们先简化一下题意。为什么呢?因为这个题如果不简化题意是不太好做的 我们考虑用二进制表示集合,这样题意为:有\(2^n - 1\)个数,我们要从中选一个大小为\(m\)的无序子集,满足以下条件: 集合中所有数的异或和为\(0\) 集合中元素不可重复 首先无序子集是吓人的,因为我们可以先考虑 ......
卡农 P3214 3214 2011 HNOI