HAOI
解题报告P2501 [HAOI2006] 数字序列
P2501 [HAOI2006] 数字序列 题目描述 现在我们有一个长度为 \(n\) 的整数序列 \(a\)。但是它太不好看了,于是我们希望把它变成一个单调严格上升的序列。但是不希望改变过多的数,也不希望改变的幅度太大。 输入格式 第一行是一个整数,表示序列长度 \(n\)。 第二行有 \(n\) ......
P1450 [HAOI2008] 硬币购物 题解
原题链接:P1450 这道题被教练放到了状压 \(DP\) 的题单里面,但是正解却不是状压 \(DP\),而是背包 \(+\) 神奇容斥,只不过是用到了一些二进制状压的思想。 思路 首先看到题目立马就想到了多重背包,但是时间复杂度肯定接受不了,于是考虑优化背包。我们可以想到一个很神奇的性质:假设只有 ......
P2516 [HAOI2010] 最长公共子序列
求方案数,直接从 \(f[i-1][j]\) 和 \(f[i][j-1]\) 转移过来,如果 \(s1[i]==s2[j]\) 就加上 \(f[i-1][j-1]\) ,如果 \(s1[i]!=s2[j]\) 且 \(f[i][j]==f[i-1][j-1]\) 说明两边 转移到了 \(f[i-1] ......
P2522 [HAOI2011] Problem b
题意 求 \(\sum_{i = a} ^ {b} \sum_{j = c} ^ {d} [\gcd(i, j) = k]\)。 Sol 简单容斥一下。 \[\begin{aligned} \sum_{i = a} ^ {b} \sum_{j = c} ^ {d} [\gcd(i, j) = k] ......
P1877 HAOI2012 音量调节
P1877 HAOI2012 音量调节 可行性背包 思路 把状态方程的性质设置为可行性,即要么可行,要么不可行。 定义状态方程\(F[i][j]\)表示前\(i\)首歌能否到达音量\(j\)。 那么状态转移方程则是 \(F[i][j] = F[i][j] || F[i - 1][j - w[i]]\ ......
题解 P2217 [HAOI2007] 分割矩阵
题目描述 将一个矩形分割成 \(n\) 个小矩形,每个小矩形的总分为这个矩形内所有数的和。求各矩形总分均方差最小值。 具体思路 先来几个定义。 均方差:$$\sqrt{\frac{1}{n} \times \sum_{i=1}^n (a_i-avg)^2}$$ 方差:$$\frac{1}{n} \t ......
P2514 [HAOI2010] 工厂选址 题解
## _Description_
有 $m$ 座煤矿,每一座煤矿有 $a_i$ 吨煤,第 $i$ 座煤矿到第 $j$ 号发电厂的运费为 $c_{i,j}$ 每吨。
有一座发电厂(标号为 ```0```),需要恰好 $b$ 吨煤矿发电,初始运行费用为 $h$。还有 $n$ 座待运行的发电厂(标号为 ... ......
P3177 [HAOI2015] 树上染色
P3177 [HAOI2015] 树上染色 [P3177 HAOI2015] 树上染色 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 目录P3177 [HAOI2015] 树上染色题目大意思路code 题目大意 有一棵 \(n\) 个点的树,你可以在上面把 \(k\) 个点染成黑 ......
P2216 [HAOI2007] 理想的正方形 题解
Description 给定 \(n \times m\) 的矩阵,找大小为 \(k \times k\) 的子矩阵 \(a\),使得子矩阵 \(\max\{a\}-\min\{a\}\) 最小。 Solution Solution 1 枚举所有 \(k \times k\) 的子矩阵,然后枚举最大 ......
P2501 [HAOI2006] 数字序列
先来看第一问。 发现直接做要考虑两数中间的数能否变得合法,所以按套路将 \(a_i\) 减去 \(i\),这样就只要变成单调不降,只要两数合法中间的数就一定能变得合法。考虑不改变的那些数,它们一定单调不降,所以答案就是序列总长度减去最长不下降子序列的长度。 接下来看第二问,尝试观察一些性质: 可能有 ......
P2501 [HAOI2006] 数字序列
原题 是思路非常值得学习的一道题 第一问: 首先我们感性上觉得这题应该和LIS有一点关系,但里面有一点问题: 17 50 50 50 18 如果我们求LIS的话,我们会认为只需要改掉50 50 50即可,但其实我们只改掉这些数,我们是无法做到让数单增的 我们发现这个限制写成数学语言即为:\(a_i ......
P2215 [HAOI2007] 上升序列
考虑一个长度为 $L$ 的最长上升子序列 $P$,以它的第 $i$ 个元素 $a_{x_i}$ 开头的最长上升子序列长度至少为 $L-i+1$。反之,若一个数满足以其开头的最长上升子序列长度至少为 $L-i+1$ 则这个数必定可以作为 $P$ 的第 $i$ 个元素。 所以我们可以先倒着跑一遍最长下降 ......
P1463 [POI2001] [HAOI2007] 反素数 题解
# P1463 [POI2001] [HAOI2007] 反素数 题解 可以发现,最大的不超过 $n$ 的反素数就是 $1\sim n$ 中因数最多的数字。 > 证明: > > 设 $x, x\in[1, n]$ 为 $1\sim n$ 中因数最多的数字,则 $x #define x first # ......
P1450 [HAOI2008] 硬币购物 题解
# P1450 [HAOI2008] 硬币购物 题解 首先考虑只有一种硬币的情况。 如果取的数量没有限制,就是一个完全背包,$f_i$ 表示背包体积为 $i$ 的选择方案数,显然 $f_j = f_{j - v}$。 如果取的数量有限制,用多重背包做一遍会超时,考虑以下思路:所有方案数 - 不合法方 ......
[HAOI2012] 高速公路 题解
# [HAOI2012] 高速公路 题解 [题目链接](https://www.luogu.com.cn/problem/P2221) 题目要求我们求期望,先考虑一下求期望的公式。 根据期望的定义得:期望费用 $E_v = \dfrac{所有可能路线的总费用}{所有可能路线的数量}$. 其中,所有可 ......
NC19999 [HAOI2016]放棋子
[题目链接](https://ac.nowcoder.com/acm/problem/19999) # 题目 **题目描述** 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每 ......
NC19989 [HAOI2012]容易题(EASY)
[题目链接](https://ac.nowcoder.com/acm/problem/19989) # 题目 **题目描述** 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下: 有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不 ......
P3740 [HAOI2014] 贴海报
## [$P3740$ $[HAOI2014]$ 贴海报](https://www.luogu.com.cn/problem/P3740) ### 一、题目描述 $Bytetown$城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论。为了统一管理,城市委员会为选民准备了一个张贴海 ......
P1 P2508 [HAOI2008]圆上的整点
### [HAOI2008]圆上的整点 23.3.22 WE. 真是一道神题,特别是对于刚得了甲流滚回家摆烂从而有时间乱看而恰巧这几天上课刚学复数的我。 一直很好奇复数到底是什么,昨天晚上~~刷B站~~学习偶然看到了一个解释虚数的视频,结果也没看懂,只听说乘上一个 $i$ 相当于旋转 $90^{\c ......
洛谷P2503 [HAOI2006] 均分数据 题解 模拟退火
题目链接:[https://www.luogu.com.cn/problem/P2503](https://www.luogu.com.cn/problem/P2503) 模拟退火 + 贪心。 ```c++ #include using namespace std; int n, m, a[22], ......
P3180 [HAOI2016] 地图
## Problem 给出 $n$ 个点 $m$ 条边的无向连通图,且每条边最多被包含在一个环中,每个点有颜色,有 $q$ 次询问,每次询问给出一个点 $x$ 和参数 $y$,假如将 $1$ 到 $x$ 所有简单路径上的边删去后,从 $x$ 出发,能到达的所有点中,颜色编号小于等于 $y$ 且出现次 ......
luogu P3733 [HAOI2017] 八纵八横 题解【线段树分治+线性基+可撤销并查集+bitset】
[TOC] # 题目大意 [题目链接](https://www.luogu.com.cn/problem/P3733 "题目链接") >给出一张 $n$ 个点 $m$ 条边的连通无向图,边带边权 $w_i$ 。有以下三种操作,共 $q$ 次: $\centerdot$在点 $x,y$ 之间加入一条边 ......
NC19981 [HAOI2010]软件安装
## [NC19981 [HAOI2010]软件安装](https://ac.nowcoder.com/acm/problem/19981) ### 一、题目描述 现在我们的手头有$N$个软件,对于一个软件$i$,它要占用$W_i$的磁盘空间,它的价值为$V_i$。我们希望从中选择一些软件安装到一台 ......
HAOI2011 Problem b
# Problem b [link](https://www.luogu.com.cn/problem/P2522) 做法:莫比乌斯反演。 思路: 对于给出的 $n$ 个询问,每次求有多少个数对 $(x,y)$,满足 $a \le x \le b$,$c \le y \le d$,且 $\gcd(x ......
【2023.7.22/HAOI2018】渺小如褐蚁也只能蓄力一搏,企图撼动命运的终末
## 奇怪的背包 首先一个物品 $v$ 能做的贡献是 $k\times \gcd(v,P)$,所以一开始 $v\gets \gcd(v,P)$。 感觉很神秘啊,复杂度估计是个 $\mathcal O(n+m+\sqrt P)$ 或者 $\mathcal O(n\ln P)$ 或者 $\mathcal ......
题解 LGP3175 【[HAOI2015] 按位或 】
刚开始你有一个数字 $0$,每一秒钟你会随机选择一个 $[0,2^n-1]$ 的数字,与你手上的数字进行或(C++,C 的 `|`,pascal 的 `or`)操作。选择数字 $i$ 的概率是 $p_i$。保证 $0\leq p_i \leq 1$,$\sum p_i=1$ 。问期望多少秒后,你手上... ......
NC19995 [HAOI2015]树上操作
[题目链接](https://ac.nowcoder.com/acm/problem/19995) # 题目 **题目描述** 有一棵点数为 N 的树,以点 1 为根,且树点有边权。 然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的 ......
【题解】 P2221 [HAOI2012]高速公路
[传送门](https://www.luogu.com.cn/problem/P2221) 输入时将 $r$ 先减 1。 发现收费之和为 $$ans = \sum\limits_{i = l} ^ {r} a_i \times (r - l + 1) \times (i - l + 1 )$$ 化简 ......
[HAOI2017] 八纵八横
可删除线性基板子。 显然我们贪心的希望越高位的线性基越早被删除,于是我们对于每一位顺便记录一下被删除的时间。如果要插入的数被删除时间比较晚,则与交换该位于要插入的数。其它和普通线性基一样。 其它部分参见 [WC2011]最大XOR和路径。 ```cpp #include #define bt bit ......
[HAOI2012] 音量调节
# [[HAOI2012] 音量调节](https://www.luogu.com.cn/problem/P1877 "[HAOI2012] 音量调节") ## 题目描述 一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量。在演出开始之前,他已 ......