09 2024 档案
摘要:移动 题意 有一个 \(n\times m\) 的网格图,有 \(k\) 个点不能走。 每次移动可以向右或向下走,只能走两次。 求能走到的点的个数。 思路 可以发现只能是从第一排向下走或从第一列向右走。 统计上下走能到的点和左右走能到的点,减去重复的即可。 扫描 \(x\),使用线段树维护 \(y\
阅读全文
摘要:楼房重建 题意 小 A 在平面上 \((0,0)\) 点的位置,第 \(i\) 栋楼房可以用一条连接 \((i,0)\) 和 \((i,H_i)\) 的线段表示,其中 \(H_i\) 为第 \(i\) 栋楼房的高度。如果这栋楼房上任何一个高度大于 \(0\) 的点与 \((0,0)\) 的连线没有与
阅读全文
摘要:[HNOI2009] 梦幻布丁 题意 给出一个序列 \(a\),有 \(q\) 次操作,每次修改把序列中一种数全部改为另一种数。 每次询问,查询序列 \(a\) 的颜色段个数。 思路 颜色段只有同一种颜色才有贡献,我们考虑每种颜色开一棵平衡树维护。 每种颜色维护其在原序列中的下标,下标连续的一段区间
阅读全文
摘要:[2023四校联考3]sakuya 题意 给出一棵 \(n\) 个点的树,有 \(m\) 个特殊点 \(a\),求将 \(a\) 随机打乱后 \[\sum_{i=2}^m d(a_{i-1},a_i) \bmod 998244353 \]的期望。有 \(q\) 次修改,每次将一个点连接的所有边权值增
阅读全文
摘要:[2023四校联考3]meirin 题意 给出两个序列 \(a,b\),\(b\) 需要支持区间加。 每次修改完后求: \[\sum_{l=1}^n\sum_{r=l}^n(\sum_{i=l}^{r}a_i)\times (\sum_{i=l}^{r}b_i) \bmod 10^9+7 \]思路
阅读全文
摘要:[2023四校联考3]flandre 题意 初始时,\(b_i=a_i\)。 对于 \(a_i<a_j\),\(b_j \leftarrow b_j + k\)。 对于 \(a_i=a_j\),\(b_j\) 不变。 对于 \(a_i>a_j\),\(b_j \leftarrow b_j - k\)
阅读全文
摘要:[NOIP 2024 模拟3]变幻 题意 给出长度为 \(n\) 的序列 \(a\)。可以进行 \(k\) 次修改。 每次修改可以把一个数变得更小。求序列中山谷数之和的最大值。 思路 动态规划,定义 \(dp_{i,j}\) 表示前 \(i\) 个数进行 \(j\) 次修改的最大和。 因为连续两个点
阅读全文
摘要:[COCI2022-2023#4] Zrinka 题意 给定两个由 \(0,1\) 组成的序列。 \(0\) 只能填入偶数,\(1\) 只能填入奇数。 要求两个序列单调递增并且每个数最多使用一次。 求所用数最大值的最小值。 思路 动态规划。 定义 \(dp_{i,j}\) 表示序列 \(1\) 填到
阅读全文
摘要:[COCI2015-2016#2] VUDU 题意 求一个序列中有多少个子段平均数大于 \(P\)。 思路 区间和相关的问题可以考虑前缀和。 对于原序列前缀和序列 \(a\),询问等价于求数对 \((l,r)(l\le r)\) 的个数,满足: \[\frac{a_r - a_{l-1}}{r-l+
阅读全文
摘要:[COCI2009-2010#2] PASIJANS 题意 给出 \(n\) 个栈,每次可从任意一个栈取出栈顶放入答案队列。 求字典序最小的答案队列。 思路 考虑贪心。每次从字典序最小的栈中取出栈顶。 如何动态找出字典序最小的栈? 可以使用堆,单次 \(O(1)\) 查找最小值,\(O(\log n
阅读全文
摘要:Atcoder Beginner Contest 372 A - delete . 模拟即可。 #include <bits/stdc++.h> using namespace std; using ll = long long; void solve() { char ch; while (cin
阅读全文
摘要:[POI2014] TUR-Tourism 题意 给出一张图,在这张图中,任意两点间不存在节点数超过 \(10\) 的简单路径。 第 \(i\) 个点被选的代价为 \(C_i\),每个节点要么选,要么与它直接相连的点中至少有一个被选。 求最小代价。 思路 图的生成树上状压动态规划。 由于给出的是一张
阅读全文
摘要:[CQOI2007] 涂色 题意 给出一个字符串,每个位置有一种颜色。 有一个初始无颜色的字符串,每次可以把一段字符染成同一种颜色。 求最少染多少次色,能把两个字符串变成一样。 思路 区间动态规划。 定义 \(dp_{i,j}\) 表示把 \([l,r]\) 这段区间染成一样需要的最小次数。 发现染
阅读全文
摘要:[清华集训2012] 串珠子 题意 给定 \(n\) 个点和 \(n\times n\) 的矩阵 \(c\)。 有 \(c_{i,j}\) 种方案把点 \(i\) 和点 \(j\) 连接起来。 求有多少种方案使得整张图连通。 思路 注意到 \(1\le n \le 16\),考虑状压。 定义 \(g
阅读全文
摘要:找朋友2 题意 给出 \(n\) 个数,要求每连续 \(m\) 选出至少两个数,求出选出数和的最小值。 思路 定义 \(dp_{i,j}\) 表示考虑前 \(i\) 个人,第 \(i\) 个人和第 \(i-j\) 个人必选的和的最小值。 \[dp_{i,j} = \min_{j+k\le m} \l
阅读全文
摘要:二进制或序列 题意 给出长度为 \(n\) 的序列,任意两个数进行或运算后加入序列。 问进行无数次操作后,序列去重后的长度。 思路 定义 \(f_i\) 表示数 \(i\) 可以被序列中的元素或出的值。 若 \(f_i=i\) 表示 \(i\) 可以被序列中的元素或出来,答案加一。 从小到大枚举每个
阅读全文
摘要:[SCOI2009] 迷路 题意 给出一张带权有向图,从 \(1\) 号点出发,必须在恰好 \(t\) 时刻到达 \(n\)。 中途不能停留,求有多少种方案。 思路 先考虑边权为 \(1\) 的情况,设 \(f_{t,i,j}\) 为从 \(i\) 走到 \(j\) 花费 \(t\) 个时刻的方案数
阅读全文
摘要:Exgcd 和 Excrt 的一些推导 Exgcd Exgcd 是用来求解二元一次不定方程的算法,即 \[ax+by=c \]根据贝祖定理,该方程有解当且仅当 \(\gcd(a,b) \mid c\),所以只用求解 \[ax+by=\gcd(a,b) \]又因为 \[\gcd(a,b)=\gcd(b
阅读全文
摘要:[COCI2021-2022#1] Kamenčići 题意 有一排石头,石头有红色和蓝色。 Alice 和 Bob 轮流从两端取石头,Alice 先手。 谁先去出 \(k\) 块红色石头谁输掉,求出最后谁获胜。 思路 先考虑搜索,记录当前区间,Alice 和 Bob 的红色石头个数,回合数。 再考
阅读全文
摘要:[NOIP 2024 模拟2]数组操作 题意 有 \(n + 2\) 个整数 \(a_0, a_1, . . . , a_n, a_{n+1}\),\(a_0 = a_{n+1} = 0\)。你需要做确切地 \(n\) 次操作,每次数组操作为以下形式: 选择一个整数 \(x\) 满足 \(a_x \
阅读全文
摘要:[NOIP 2024 模拟2]矩阵学说 题意 给出 \(n\) 行 \(m\) 列的矩阵,第 \(i\) 行第 \(j\) 列的元素为 \(a_{i,j}\),找出满足以下条件的三元组 \((i, j, x)\) 的 数量: \(1 ≤ i ≤ n\), \(1 ≤ j \le m\), \(1 ≤
阅读全文
摘要:[NOIP 2024 模拟2]表 题意 给定质数 \(P\)。数 \(x\) 可以花费 \(|x-y|\) 的代价变为 \(xy \bmod P\),对于每对 \((a,b)\),求 \(a\) 变成 \(b\) 的最小代价。 思路 70 pts 暴力建图跑 Floyd,时间复杂度 \(O(P^3)
阅读全文
摘要:太鼓达人 题意 求一个长度为 \(2^n\) 的 \(01\) 序列,使得将其变为环后,\(2^n\) 个长度为 \(n\) 的段都不相同。 输出字典序最小的解。 思路 前 \(n\) 个必为 \(0\),后 \(n\) 个必为 \(1\)。 先把已经出现过的字符串加入 set,然后枚举每一位。 如
阅读全文
摘要:摘果果 题意 给出一棵以 \(1\) 为根的树和两个序列 \(a\) 和 \(b\)。 确定一种 DFS 遍历顺序,使得用以下方法计算出的权值最大: 初始时 \(v \leftarrow 0,k\leftarrow 0\)。 经过一个节点 \(x\) 时 \(v\leftarrow v+ka_x,k
阅读全文
摘要:[COCI2020-2021#6] Anagramistica 题意 给定 \(n\) 个字符串和正整数 \(k\)。 定义两个字符串相似当且仅当两个字符串排序后相等。 可以从中选出一些字符串,求有多少种方案,使得其中恰好有 \(k\) 对字符串相似。 思路 先将所有字符串排序,相同的归为一类,求出
阅读全文
摘要:[NOIP 2024 模拟1]xuan大唱特唱 题意 给定 \(n\) 个点,第 \(i\) 个点坐标为 \(x_i\)。 有 \(q\) 次询问,每次给定 \(b_i,k_i\)。 求离坐标为 \(b_i\) 的点第 \(k_i\) 近的点与 \(b_i\) 的距离。 思路 二分答案 \(d\),
阅读全文
摘要:[NOIP 2024 模拟1]zyc不能大吃特吃 题意 给出两个序列 \(a,b\),给出两个数 \(A,B\)。 求最少选出多少个数,使得刚好不满足 \(\sum a_i\le A\) 且 \(\sum b_i\le B\)。 思路 贪心,\(A\) 和 \(B\) 有一个超出即可。 将序列分别按
阅读全文
摘要:[NOIP 2024 模拟1]zyc大吃特吃 题意 给出两个序列 \(a,b\),给出两个数 \(A,B\)。 求最多选出多少个数,使得刚好不满足 \(\sum a_i\le A\) 且 \(\sum b_i\le B\)。 思路 先考虑暴力 dp,定义 \(dp_{i,j}\) 表示选出的数 \(
阅读全文
摘要:[COCI2022-2023#2] Tramvaji 题意 对于每个车站 \(i\),给出一条信息。 从车站 \(j<i\) 到车站 \(i\) 花费了时间 \(t\)。 求出哪两个站之间花费的时间最少。 思路 考虑求出 \(s_i\) 表示从 \(1\) 到 \(i\) 的最少时间。 答案即 \(
阅读全文
摘要:[COCI2021-2022#6] Zemljište 题意 给出一个矩阵,一个子矩阵的权值为 \(|m-a|+|m-b|\),\(m\) 为子矩阵数值和,\(a,b\) 为给出的数。 求该矩阵权值最小的子矩阵。 思路 枚举子矩阵上界和下界,左右界使用双指针枚举,令 \(a<b\)。 对于每个左界,
阅读全文
摘要:[COCI2020-2021#5] Po 题意 给出一个序列 \(a\),有一个序列 \(b\),初始全为 \(0\)。 可以对序列 \(b\) 进行如下操作:使一个连续的区间内的所有数加上一个正整数 \(x\)。 但要求任意两个操作区间要么互不相交,要么一个包含另外一个。 求将序列 \(b\) 变
阅读全文
摘要:[COCI2020-2021#4] Vepar 题意 给定两组正整数 \(a,a+1,\ldots,b\) 和 \(c,c+1,\ldots,d\)。判断 \(c\times(c+1)\times\ldots\times d\) 能否被 \(a\times (a + 1)\times \ldots\
阅读全文
摘要:[COCI2020-2021#3] Vlak 题意 Nina 和 Emilija 在玩游戏。 Nina 先手,两人轮流在纸上写下一个字母。 每个玩家写下字母后得到的单词必须是该玩家喜欢的歌曲中某个单词的前缀。 不能操作的玩家输,判断最后谁会赢。 思路 对每个玩家喜欢的歌曲建立字典树。 搜索每个玩家的
阅读全文
摘要:[COCI2019-2020#5] Zapina 题意 有 \(n\) 个不同的人和 \(n\) 道不同的题。 第 \(i\) 个人开心当且仅当他被分配到 \(i\) 道题。 求让至少一个人开心的分配方案数。、 思路1 定义 \(dp_{i,j}\) 表示前 \(i\) 个人发 \(j\) 道题,没
阅读全文
摘要:PANDORA PARADOXXX 题意 给出一棵树,每次操作删除树上的一条边,询问树上所有连通块中直径的最大值。 思路 倒序操作,删边变为连边。 预处理出做完所有操作后的答案。 使用并查集维护连通性,记录每个连通块内直径的端点。 合并两个集合时,新的直径端点只可能是原来两个集合四个端点中的两个。
阅读全文
摘要:二叉苹果树 题意 给定一棵树,每条边有一个权值。 求留下 \(m\) 条边后与 \(1\) 连通的块内边权和的最大值。 思路 定义 \(dp_{i,j}\) 表示以 \(i\) 为根的子树留下 \(j\) 条边的最大值。 \[dp_{i,j}=\max_{k\in son_i}(dp_{k,t}+d
阅读全文
摘要:洛谷 P6419 [COCI2014-2015#1] Kamp 题意 一颗树 \(n\) 个点,\(n-1\) 条边,经过每条边都要花费一定的时间,任意两个点都是联通的。 有 \(K\) 个人(分布在 \(K\) 个不同的点)要集中到一个点举行聚会。 聚会结束后需要一辆车从举行聚会的这点出发,把这
阅读全文
摘要:洛谷 P5658 [CSP-S2019] 括号树 题意 给定一棵树,每个点有一个括号 ( 或 )。 定义 \(s_i\) 表示 根节点到 \(i\) 每个点的括号组成的序列。 求每个 \(s_i\) 中合法括号子串的个数 \(f_i\)。 思路 定义 \(g_i\) 表示 \(s_i\) 中以 \(
阅读全文
摘要:树的难题 题意 给出一个无根树。树有 \(N\) 个点,边有权值。每个点都有颜色,是黑色、白色、 灰色这三种颜色之一,称为一棵三色树。 可爱的 Alice 觉得,一个三色树为均衡的,当且仅当,树中不含有黑色结点 或者含有至多一个白色节点。然而,给出的三色树可能并不满足这个性质。 所以,Alice 打
阅读全文
摘要:黑白染色树 题意 有一棵点数为 \(n\) 的树,树边有边权。给你一个在 \([0,n]\) 之内的正整数 \(k\) ,你要在这棵树中选择 \(k\) 个点,将其染成黑色,并将其他的 \(n-k\) 个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的收益。问收益最
阅读全文
摘要:Easy树 题意 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小。 思路 有一个错误的贪心思路,即把树染色,较多的填 \(1\),较少的填 \(2\)。 这种思路可以被两个中心连在一起的菊花图 H
阅读全文
摘要:洛谷 P3469 BLO-Blockade 题意 给定一张无向图,求每个点被封锁之后有多少个有序点对 \((x,y)(x \ne y,1<=x,y<=n)\) 满足 \(x\) 无法到达 \(y\)。 思路 使用 Tarjan 求出割点,有以下几种情况。 当前点不是割点,答案为 \(2\times
阅读全文
摘要:洛谷 P2860 Redundant Paths G 题意 给定一张图,求最少添加几条边使得原图变为边双连通图。 思路 先将原图进行边双连通分量缩点,因为已经边双连通的子图我们不用考虑。 缩点后会得到一棵树,每一条边都是桥。假定有 \(k\) 个叶子节点。 我们可以把叶子节点两个两个配对连边形成环,
阅读全文
摘要:洛谷 P2515 软件安装 题意 现在我们的手头有 \(N\) 个软件,对于一个软件 \(i\),它要占用 \(W_i\) 的磁盘空间,它的价值为 \(V_i\)。我们希望从中选择一些软件安装到一台磁盘容量为 \(M\) 计算机上,使得这些软件的价值尽可能大(即 \(V_i\) 的和最大)。 但是现
阅读全文
摘要:洛谷 P3119 Grass Cownoisseur G 题意 约翰有 \(n\) 块草场,编号 \(1\) 到 \(n\),这些草场由若干条单行道相连。奶牛贝西是美味牧草的鉴赏家,她想到达尽可能多的草场去品尝牧草。 贝西总是从 \(1\) 号草场出发,最后回到 \(1\) 号草场。她想经过尽可能多
阅读全文
摘要:洛谷 P9912 Zatopljenje 题意 给出长度为 \(n\) 的序列 \(a\),有 \(q\) 次询问。 每次给出 \(l,r,x\),询问区间 \([l,r]\) 中有多少段极长的,\(a\) 都大于 \(x\) 的段。 思路 离线后扫描线。 先把询问和 \(a\) 离散化,然后扫描
阅读全文
摘要:洛谷 P5340 大中锋的游乐场 题意 给出一张 \(n\) 个点 \(m\) 条边的图,每个点有一个点权 \(1\) 或 \(-1\)。 给出点 \(s,t\),求出 \((s,t)\) 间满足以下条件的最短路。 任意时刻,走过的路径上点权和均 \(\in[-k,k]\)。 思路 分层图最短路。
阅读全文
摘要:洛谷 P5618 堵塞的交通 题意 有一个 \(2\times C\) 的网格图,需要维护 \(3\) 种操作。 连接相邻的两个格子。 将相邻的两个格子断开连接。 询问两个格子是否联通。 思路1 考虑分块。 连边时块内使用并查集维护,块与块之间用数组标记。 删边块内的边时暴力重构并查集,块之间的边清
阅读全文
摘要:洛谷 P3225 矿场搭建 题意 煤矿工地可以看成是由隧道连接挖煤点组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍塌之后,其他挖煤点的工人都有一条道路通向救援出口。 请写一个程序,用来计算至少需
阅读全文
摘要:洛谷 P4819 杀人游戏 题意 有 \(n\) 个人,他们之中有一个杀手。 每个人都有可能是杀手,并且概率相等。 你可以询问若干人。 若询问的人是杀手,你会被干掉。 若询问的人是平民,你会知道他认识的所有人的身份。 给出一张有向图表示这 \(n\) 个人的关系。 求出你活着知道杀手是谁的概率。 思
阅读全文
摘要:洛谷 P2403 所驼门王的宝藏 题意 有一个 \(R\times C\) 的网格图,有 \(N\) 个点有传送门和宝藏。 有三种传送门: 一种可以传送至同一行的任意点, 一种可以传送到同一列的任一点, 一种可以传送的周围八个点。 可从任意点开始,任意点结束,求最多走过多少个宝藏。 思路 把网格图建
阅读全文
摘要:洛谷 P3224 永无乡 题意 给出 \(n\) 个点。有两种操作: 在点 \(x\) 和点 \(y\) 之间连一条边。 询问与 \(x\) 联通的点中点权第 \(k\) 小的点。 思路 使用并查集维护连通性。每个联通块用一棵平衡树维护点权,合并时启发式合并。 时间复杂度:\(O(n \log^2n
阅读全文
摘要:0901-T1 北极星 题意 有一个序列 \(a\),其长度为 \(k\),初始为空(\(k=0\))。你可以进行以下三种操作。 在序列末尾添加一个 \(1\)。 把序列末尾复制一份。 拿出序列最后两个数,放入它们的和,将其余数字减一。 给定长度为 \(n\) 的序列 \(b\),构造一个长度不大于
阅读全文
摘要:0901-T2 笼中鸟 题意 给出正整数 \(n,k\)。 求长度为 \(k\),每个数都是 \([1,n]\) 中的随机正整数的序列的众数的出现次数的期望值乘以 \(n^k\) 后的结果。 35pts 思路 定义 \(dp_{i,j,p}\) 表示考虑前 \(i\) 种数,长度为 \(j\),众数
阅读全文
摘要:电力 题意 求一个图删除一个点之后,联通块最多有多少。 思路 先计算出原来有多少个联通块,再计算每个点对联通块的贡献的最大值。 考虑跑一遍 tarjan,孤立点的贡献为 \(-1\),非割点贡献为 \(0\),割点贡献为 dfs 树上 \(low_v \ge dfn_u\) 的 \(v\) 的个数,
阅读全文
摘要:单词游戏 题意 给出 \(n\) 个字符串。求是否有一种 \(n\) 个字符串的排列,满足前一个字符串的末尾等于这个字符串的开头。 思路 题意可转化为把每个字符串的头向尾连一条有向边,求这个有向图是否有欧拉路径或欧拉回路。 有向图存在欧拉路径的条件:有一个点入度等于出度加一,有一个点出度等于入度加一
阅读全文
摘要:Atcoder Beginner Contest 369 C-Count Arithmetic Subarrays 题意 给出一个长度为 \(n\) 的序列 \(A\),求有多少个 \(A\) 的连续子序列为等差数列。 思路 对于递增的右端点,左端点不减。 使用双指针,枚举右端点,扫描左端点。 时间
阅读全文