摘要:
链接: 洛谷 题目大意: 有一个 \(n\) 个节点的图,在 \(k\) 时间内有 \(m\) 条边会出现后消失,要求出每一时间段内这个图是否是二分图。 思路: 线段树分治用于离线、可撤销类的题目。 线段树维护某时间内连的边。统计答案时,用扩展域并查集查询连边是否合法。并查集不可路径压缩,因为要用栈 阅读全文
摘要:
题目大意: 有 \(n\) 次点击要做,成功了就是 o,失败了就是 x,分数是按 combo 计算的,连续 \(a\) 个 combo 就有 \(a\times a\) 分,combo 就是极大的连续o。 思路: 设 \(f_i\) 表示前 \(i\) 秒期望分数,\(g_i\) 表示前 \(i\) 阅读全文
摘要:
序列的第 k 个数 题目大意: 给你序列的前三项,这个序列要么是等差序列,要么是等比序列,求出第 \(k\) 项的值。 代码: const int mod = 200907; inline ll Read() { ll x = 0, f = 1; char c = getchar(); while 阅读全文
摘要:
Prime Distance 链接: 洛谷 题目大意: 给定两个正整数 \(l,r\),求 \([l,r]\) 间 相邻 的两个差最大的质数和 相邻 的两个差最小的质数。如果区间内质数个数 \(\le 1\),输出 There are no adjacent primes.。 思路: 水题,通过前 阅读全文
摘要:
Watching Fireworks is Fun 链接: 洛谷 博客园 题目大意: 一个城镇有 \(n\) 个区域,从左到右 \(1\) 编号为 \(n\),每个区域之间距离 \(1\) 个单位距离。节日中有 \(m\) 个烟火要放,给定放的地点 \(a_i\),时间 \(t_i\),如果你当时在 阅读全文
摘要:
涂抹果酱 题目大意: 在一个 \(n\times m\) 的矩阵上可以染三个色,同色不相邻。已给出第 \(k\) 行的方案,求方案数。 正文: 三进制状压,求出来用 \(k-1\) 的方案乘上 \(n-k\) 的方案即可。 代码: const int N = 1e4 + 10, M = 10, M2 阅读全文
摘要:
最短路径 题目大意: 给定一张 \(n\) 个点的带权无向图,求起点 \(0\) 到终点 \(n-1\) 的最短 Hamilton 路径。Hamilton 路径的定义是从 \(0\) 到 \(n-1\) 不重不漏地经过每个点恰好一次。 正文: 傻逼题。设 \(f_{i,j}\) 表示当前 \(i\) 阅读全文
摘要:
2021.7.19模拟赛 比赛概括: \(\mathrm{sum}=8+80+0+0\) 唉。 T1 玉米田(加强版): 见【Luogu P1879】[USACO06NOV]玉米田Corn Fields。 T2 最大公约数: 差不多是这个:【Luogu P3455】 [POI2007]ZAP-Que 阅读全文
摘要:
概率充电器 链接: 洛谷 题目大意: 在一棵树上,\(n\) 个节点有直接充电的概率 \(q_i\),边有帮节点间接充电的概率 \(p_{u,v}\)。求每个点充上电的概率。 思路: 直接求充上电的概率不太行,求充不上的概率。设 \(f_u\) 表示 \(u\) 不亮的概率: \(f_u=(1-q_ 阅读全文
摘要:
2021.7.17模拟赛 比赛概括: \(\mathrm{sum}=0+0+0+0\) 唉。 T1 [JOI 2021 Final]有趣的家庭菜园 4: 题目大意: 思路: \(\mathcal{O}(n)\) 求出需要浇水的前缀和和后缀和,枚举峰值,取最小的最大值即可。 代码: const int 阅读全文
摘要:
志愿者招募 链接: 洛谷 题目大意: 第 \(i\) 天要 \(a_i\) 个人。第 \(j\) 种人从第 \(s_j\) 天干到第 \(t_j\) 天,要花 \(c_j\) 元。 找到一种方案使得付出的钱最少。 正文: 这是一种线性规划类问题,最小化 \(\sum_{i=1}^m x_ic_i\) 阅读全文
摘要:
2021.7.16模拟赛 比赛概括: \(\mathrm{sum}=10+30+0+100\) 唉,我果然只是暴力选手。 T1 【BZOJ 4131】并行博弈: 题目大意: 在一个 \(n\times m\) 的棋盘上,选择一个黑点可使得矩阵 \((1,1,x,y)\) 翻转。无法操作的人败。问 \ 阅读全文
摘要:
2021.7.15模拟赛 比赛概括: \(\mathrm{sum}=40+0+30+0\) 本来可以拿 \(200\),但是因为没审完题。唉。 T1 彩色圆环: 原题,详见 【YBTOJ】【国家集训队】彩色圆环。 T2 折射伤害: 题目大意: 在一个游戏中有n个英雄,初始时每个英雄受到数值为ai的伤 阅读全文
摘要:
彩色圆环: 题目大意: 一个环上有 \(n\) 个点,每个点随机染为 \(m\) 种颜色之一。求环上同色连续段长度之积的期望值。 思路: 破环为链,就有 \(f_{i,[0,1]}\) 表示到第 \(i\) 个数,环首尾是否同种颜色的期望值。则有: $$\begin f_{i,1}&=\sum_ \ 阅读全文
摘要:
炮兵阵地: 链接: 洛谷 题目大意: 在一个棋盘上,一个棋子上下左右相邻两格内不能有别的棋,且棋子不能放在一些格子内。求最多的棋子数。 正文: 设 \(f_{i,j,k}\) 表示第 \(i\) 行的状态是 \(j\) 和前一行的状态是 \(k\) 的方案数。显然有: \(f_{i,j,k}=\ma 阅读全文
摘要:
2021.7.14模拟赛 比赛概括: \(\mathrm{sum}=0+2.5+60+0\) 唉。 T1 树的直径: 题目大意: 每次询问一个叶子节点,它会产生两个儿子,并求出整个树的当前直径。 思路: 有一个性质:当前直径的某一点必是上一直径的某端点。 那么离线把树构造出来,每次就用 LCA 比大 阅读全文
摘要:
2021.7.13模拟赛 比赛概括: \(\mathrm{sum}=20+0+0+20\) 唉。 T1 消息传递: 题目大意: 一个点在某一秒可向相邻节点扩散,问哪些节点开始扩散能最快多少秒将所有节点全部覆盖。 思路: 谢谢各位,我把学的东西都忘了。 先想暴力,对于每个点求出 \(f_i\) 表示从 阅读全文
摘要:
消息传递 链接: 洛谷 博客园 题目大意: 一个点在某一秒可向相邻节点扩散,问哪些节点开始扩散能最快多少秒将所有节点全部覆盖。 思路: 先想暴力,对于每个点求出 \(f_i\) 表示从以 \(i\) 为根的子树中扩散到 \(i\),最长花费的时间。则有: \(f_u=\max_{v\in\mathr 阅读全文
摘要:
最长距离 题目大意: 给出一个以 1 为根的 \(n\) 个结点的树,树边有权值,求出每个结点与相距最远结点间的距离 \(s_i\)。 正文: 有一条性质:每个节点相距最远的节点一定是树的直径的端点。 那么搜索三次:找端点、统答案。 代码: const int N = 1e4 + 10; inlin 阅读全文
摘要:
2021.7.12模拟赛 比赛概括: \(\mathrm{sum}=40+0+0+5\) 唉。 T1 好元素: 题目大意: 找到 \(a_1+a_2+a_3=a_4\) 的个数(\(1,2,3\) 可以相等)。 思路: 一眼题,用将 \(a_1+a_2+a_3=a_4\) 转移为 \(a_1+a_2 阅读全文
摘要:
【YBTOJ】【Luogu P6218】[USACO06NOV] Round Numbers S 链接: 洛谷 题目大意: 在 \([l,r]\) 中找到二进制中零数大于等于一数的数的个数。 正文: 数位 DP 板子题。设 \(f_{len,A,B,pos}\) 表示当前 \(len\) 位 \(A 阅读全文
摘要:
#【YBTOJ】【HDU3652】B-number 题目大意: 查询 \([1,n]\) 中有多少个数包含 \(13\) 并能被其整除。 正文: 数位 DP 板子题。设 \(f_{len,x,mod,flag,pos}\) 表示,在第 \(len\) 位时,其数为 \(x\),且当前余数是 \(mo 阅读全文
摘要:
【Luogu P5752】[NOI1999] 棋盘分割 链接: 洛谷 题目大意: 将一个 8 \(\times\) 8 的棋盘进行如下分割:将原棋盘割下一块矩形棋盘并使剩下部分也是矩形,再将剩下的部分继续如此分割,这样割了 \((n-1)\) 次后,连同最后剩下的矩形棋盘共有 \(n\) 块矩形棋盘 阅读全文
摘要:
【YBTOJ】【UVA10559】方块消除 Blocks 链接: 洛谷 题目大意: 有 \(n\) 个带有颜色的方块,没消除一段长度为x的连续的相同颜色的方块可以得到 \(x^2\) 的分数,让你用一种最优的顺序消除所有方块使得得分最多。 正文: 考虑区间 DP。若用一般状态 \(f_{l,r}\) 阅读全文
摘要:
【YBTOJ】【Luogu P5020】[NOIP2018 提高组] 货币系统: 链接: 洛谷 题目大意: 在网友的国度中共有 \(n\) 种不同面额的货币,第 \(i\) 种货币的面额为 \(a[i]\),你可以假设每一种货币都有无穷多张。为了方便,我们把货币种数为 \(n\)、面额数组为 \(a 阅读全文
摘要:
【YBTOJ】【Luogu P4180】[BJWC2010]严格次小生成树: 链接: 洛谷 题目大意: 求次小生成树。 正文: 本题有一个至关重要的性质:次小生成树只与最小生成树有一边之差。 那么只用在最小生成树中加边,在环中的边里找一个最大的边减去。将所有这样的操作取最大,就是非严格最小生成树。有 阅读全文
摘要:
【YBTOJ】【Luogu P2680】[NOIP2015 提高组] 运输计划: 链接: 洛谷 题目大意: 在一棵 \(n\) 个节点的树中,给定 \(m\) 条路径,现在能把树中某边边权改为零,求最大路径边权和最小值。 正文: “求最大路径边权和最小值”可以联系到二分答案,二分最大路径边权和。在二 阅读全文
摘要:
链接: 洛谷 题目大意: 给定一个图,每次问两点,求两点间最小值最大是多少。 正文: 两点间不只有一条路径,我们要求“最大”,实际上是将它化为只有一条路径,即最大生成树。 接着就是树剖板子题,但也可以用 LCA 做。 代码: const int N = 1e4 + 10; inline ll Rea 阅读全文
摘要:
链接: 洛谷 题目大意: 小 A、小 B 从左往右走,小 A 会走差值次小高度,小 B 走差值最小高度。 给定总路程限制,求出两人路程最小比。 给定起点和限制,求两人路程。 正文: 在做题时会冒出一个想法:可能要先预处理出所有位置的下一个位置。很明显,这是解决本题的“先行官”。 我们可以通过链表,对 阅读全文
摘要:
链接: 洛谷 题目大意: 对一个字符串区间升降排序。 正文: 本题与 【Luogu P2824】[HEOI2016/TJOI2016]排序 有异曲同工之妙。这种升降排序的问题,可以通过维护每个字符在某位置是否有值,通过区间修改区间求和可以改变位置。 比如字符串 \(s=\{\texttt{a,e,c 阅读全文
摘要:
链接: 洛谷 题目大意: 二维区间第 \(k\) 小。 正文: 就是区间第 \(k\) 小的升维版,详见 区间第 \(k\) 小。 代码: const int N = 510 + 10, M = 6e4 + 10, P = 25e4 + 10; inline ll Read() { ll x = 0 阅读全文
摘要:
思路: 设 \([l,r],[L,R]\) 分别为答案的值域和定义域。整体二分的过程中像主席树一样按时间顺序存入数组分治: 先找到当前答案与 \(mid\) 之间的关系,并分类。 分好类,以其作为下一层分治的数组。 例题: 区间第k小: 题目:Luogu P3834 【模板】可持久化线段树 2(主席 阅读全文
摘要:
#include <cmath> #include <queue> #include <vector> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define ZYC using #d 阅读全文
摘要:
链接: 洛谷 题目大意: 每次询问给定一个区间 \([L,R]\) ,输出 \(a_{[L,R]}\) 的最大公因数。 正文: ST 表板子题。 代码: const int N = 1000010; inline ll Read() { ll x = 0, f = 1; char c = getch 阅读全文
摘要:
单点修改区间查询 LOJ #133. 二维树状数组 1:单点修改,区间查询 根据二维前缀和的思想对普通树状数组优化: const int N = 4106; inline ll Read() { ll x = 0, f = 1; char c = getchar(); while (c != '-' 阅读全文
摘要:
链接: 洛谷 题目大意: 构造一个无限长的文本串,使得此串不能被匹配。 正文: 好题。我的一开始的思路是,像 01trie 求最大异或那样跑 trie,然后跳失配指针判断合法。但显然假了。 于是得深度思考题意,“不能被匹配”说明跑 trie 时尽量失配,那么在求出失配指针后被修改的 trie 可以往 阅读全文
摘要:
链接: 洛谷 题目大意: 【Luogu P4824】[USACO15FEB]Censoring S的强化版。 在 \(S\) 中从头开始寻找屏蔽词,一旦找到一个屏蔽词,就删除它,然后又从头开始寻找(而不是接着往下找)。 有 \(n\) 个屏蔽词。 正文: 多模式串匹配,考虑用 AC 自动机。详见弱化 阅读全文
摘要:
链接: 洛谷 题目大意: 在 \(S\) 中从头开始寻找屏蔽词,一旦找到一个屏蔽词,就删除它,然后又从头开始寻找(而不是接着往下找)。 只有一个屏蔽词。 正文: 单模式串匹配,考虑用 KMP。如果匹配不到,则入栈;否则记录一下当前位置,并将当前匹配到的位置 \(i\) 往前移,并出栈。 但是这么做有 阅读全文
摘要:
链接: 洛谷 题目大意: 求每个单词分别在论文中出现了多少次。 正文: 对于整篇“论文”,也就是文本串,其实就是各个“单词”,即模式串,连接而成,而且有分隔符。 那么接下来就与二次加强的 AC 自动机板子一模一样了:因为直接跳失配指针会被卡,所以建 fail 树,然后跑 DFS 或者拓扑。 代码: 阅读全文