- 博客(89)
- 收藏
- 关注
原创 【CF487B】Strip 题解
这个节点也加进来,它要么对这个区间的极差没有影响,要么只会将这个极差变得更大。所以,若是一个左端点。在上面的代码中可以看到具体实现。这里有个优化为什么每次枚举到一个新的右端点,不需要从头再选一次。的左端点的位置往后枚举新的左端点,并且取最左边的合法左端点即可。这时候要注意到一个很重要的性质对于一个区间。(看见前面几篇题解都没有提到这个优化的具体原因。下面先贴上代码,后面会详讲优化及其原因。综上,我们只需要继续上一个枚举的。辛苦管理员审核,如有问题烦请指出。,对于每个确定的区间右端点。...
2022-07-20 08:28:53
149
原创 【ARC110E】Shorten ABC 题解
感性的理解/证明是发现不论怎样操作字符串,它所对应的数字串的异或和是不变的,故当前面。个数的异或和相同时,这两部分所组成的字符串才是一种操作原串能得到的字符串。在将abc转化为123之后发现,对于每一个对答案有贡献的长为。段,每一段都把里面所有的数直接异或起来,结果即是那一段的字母。的字符串,本质上都是在123数字序列上划分了。补充说一下最后需要结尾一段异或和为。然后笔者自行惭愧讲不清楚。碰到这种题就要下意识。...
2022-07-20 08:23:16
201
原创 线段树 整理笔记
p.s. 代码块缩进有问题,但不影响正常阅读,请忽略。P4513 小白逛公园:区间询问 + 单点修改。对于询问区间内最大连续权值和,按照套路,维护 ti.lmaxt_i.lmaxti.lmax 与 ti.rmaxt_i.rmaxti.rmax,注意在查询的时合并答案要分情况。具体地,看代码吧(实在描述不来):区间乘 + 区间加 + 区间查询P2023 [AHOI2009] 维护序列:模板。线段树乘法不过是多加了一个乘法懒标记,维护的时候复杂了些。区间除法[雅礼集训 2017
2022-07-07 13:47:12
155
原创 (动态)树分治 学习笔记
浅谈一下学了好久的树分治。适合处理大规模树上路径信息问题。P3806 【模板】点分治1很基础的了,询问树上距离为 kkk 的点对是否存在。大概就是每次找重心当作根,对于当前的根,统计每个子节点到它的距离,然后用双指针遍历,当且仅当两个儿子到当前根的距离之和为 kkk 且来自根的不同子树时,这两个子节点的距离就为 kkk,那么距离为 kkk 的点对存在。另一道类似的升级题:P4178 Tree。题意变为求出树上两点距离小于等于 kkk 的点对数量。思路差不多,不过是在遍历统计答案的时候使用双指针统计答案,即
2022-06-30 15:38:51
323
原创 【LG-P3920/WC2014】 紫荆花之恋
在此提供一种可能相对其他解法较为好写的做法。首先考虑一棵如下图的树,其中 rtlr0=6, rtlr1=5rtlr_0=6,\ rtlr_1=5rtlr0=6, rtlr1=5。发现此时这棵树不考虑根节点只有两条链,而左右链的末尾分别是 rtlr0rtlr_0rtlr0 和 rtlr1rtlr_1rtlr1。同时,按照套路,我们将 dist(i,j)≤ri+rjdist(i,j) \leq r_i+r_jdist(i,j)≤ri+rj 化为 dist(i,l)−ri≤rj−dist(j,l)di
2022-06-02 20:48:09
315
原创 动态树之 Link Cut Tree (做题记录)
LCT 题单做题记录一、维护链信息P3203 [HNOI2010]弹飞绵羊:维护一条路径的长度,由于题目大大降低了难度,所以只需要使用 accessaccessaccess 和 splaysplaysplay 两个操作即可。要学会灵活应用 LCT 中的函数,不要有刻板思维(如改变 cutcutcut 函数的写法)。P1501 [国家集训队]Tree II:需要维护加标记、乘标记和翻转标记三个 lazytaglazytaglazytag。pushdownpushdownpushdown 时,先处
2022-05-18 13:35:04
173
原创 2022.5.17 比赛题整理
2022.5.17 2022初一测试六链接集合总结T1:二分 + 贪心。T2:模拟(对某某数之积之和的简化与运算)。[主席树 好题] {\color{Red}{\text{[主席树 好题] }}}[主席树 好题] T3:二分求区间中位数 + 主席树维护。T4:?(目前还未改。)Problem A“打破定式思维”,题面不含“最小(大)值最大(小)”时也有可能是用二分做。二分所用秒数,然后贪心验证是否可行即可。#include<bits/stdc
2022-05-18 13:32:59
164
原创 【LG-P2839 [国家集训队]】middle
传送门:洛谷 P2839 [国家集训队]middle二分求解中位数 + 主席树维护Solution1 求中位数拿到题目首先肯定会去思考怎么求区间中位数。按照以往求中位数的方法——对顶堆,显然不行,时间肯定会炸。那就要引入一个新的求中位数的方法了:二分中位数大小,然后将大于等于该数的数的值设为 1,否则设为 -1,然后求区间的和,若大于等于 0,则意味着真正的中位数一定大于等于该数,否则小于该数,时间复杂度同对顶堆一样,O(nlogn)O(nlogn)O(nlogn)。2 线段树维护这时候我们
2022-05-18 13:31:57
149
原创 数论 · 幂函数求导
前言TC 讲课笔记。正文定义一个幂函数:f(x)=a1xb1+a2xb2+⋯+anxbn+Cf(x)=a_1x^{b_1} + a_2x^{b_2} + \cdots + a_nx^{b_n} +Cf(x)=a1xb1+a2xb2+⋯+anxbn+C。(CCC 为常数。)导数:反映一个函数的变化快慢。对于一个一次函数:f(x)=kx+bf(x)=kx+bf(x)=kx+b,那么它的导数就是 kkk——kkk 反应了这条直线上的点的变化快慢,kkk 越大,yyy 值的变化越大。
2022-05-05 13:55:42
2228
原创 2022.5.2 比赛题整理
2022.5.2 2022初一测试五链接集合总结80+80+20+0=18080 + 80 +20 + 0 = 18080+80+20+0=180会拿部分分了,有进步。T1:模拟,最后一个大数据打表。T2:概率问题,贪心。T3:找规律/性质,模拟。dp 好题{\color{Red}{\text{dp 好题}}}dp 好题T4:dp + 前缀和 + 预处理最长相同前缀长度。Problem ASolutionbitset 可以节省空间!!{\color{Red
2022-05-05 13:54:54
680
原创 【CF768B】Code For 1 题解
传送门:B. Code For 1像我这么菜的 OierOierOier,考场上只想的出来类似模拟线段树的做法啦~被暴力吊打(大哭)。此题解提供一种新做法做参考。Solution1首先我们发现一个给定的 nnn,我们是可以求出它最终化为的 01 串的长度。设 slsts_{lst}slst 为当前分解得到的串的长度,xxx 为分解出的、用二进制表示的 01 “串”长度最大的一个数,yyy 为长度最大的数的个数。例如,当输入的 nnn 为 10 时,二进制下表示为 1010,此时 slsts_
2022-04-16 16:14:16
434
原创 【LG-P4332 [SHOI2014]】三叉神经树 题解
题面挺有意思(恶心)的。传送门:P4332 [SHOI2014]三叉神经树LCTSolution1对于每一个非叶子节点 iii,有 valival_ivali,表示其输出为 1 的儿子的总数。所以对于每一个 vali, i∈[1,n]val_i,\ i \in [1,n]vali, i∈[1,n] ,其取值范围是 0~3。所以我们发现这个非叶子节点 iii 最后输出的结果就是 ⌊vali2⌋\left\lfloor\dfrac{val_i}{2}\right\rfloor⌊
2022-04-08 21:35:53
357
原创 LG-P7549 [BJWC2017] 神秘物质 题解
传送门:P7549 [BJWC2017] 神秘物质先膜拜一下 cyf\text{cyf}cyf 学长。本题解主要是补充一下 cyf\text{cyf}cyf 学长思路的细节。Solution1首先看操作一、二,发现它们的本质实际上都是对一段区间的操作。所以本题使用文艺平衡树来维护。也就是说,对于每次的一、二操作,我们都会将要进行修改的区间旋转到一颗子树内,即文艺平衡树中翻转区间的预操作。具体可以看@皎月半洒花在文艺平衡树题解中放的这张图:(设将要修改的区间为 [l,r][l,r][l,r]。)
2022-03-30 13:39:09
394
原创 2021.8.10 比赛题整理
UPDATE 21/08/26更改题面、转移链接等。2021.8.10 新初一暑假测试五链接集合11 / 18,190 / 400。T1签到题,就不说了。简单的一批(题目说行末不能有空格,结果加了也 ac,就离谱)。T2 Recording the MoolympicsP2255 [USACO14JAN]Recording the Moolympics S在书上看过一模一样的题目和讲解,结果还是错了…因为是问可以录制的最大数量的节目,不是 dp 就是贪心 (当然也能暴力),但前面的选择
2022-03-23 13:00:02
1893
原创 2021.8.12 比赛题整理
UPDATE 21/08/26更改题面、转移链接等。2021.8.12 新初一暑假测试六链接集合1 / 18,260 / 400。总结整体还可以吧,该拿的分都尽量拿了,也证明最近的训练有效 (我近来的效率是真的低),除了 T4。排名我是真没想到 ,考试的时候看见教练对着我笑还来问候我,自己还是做了心理斗争的,最后毅然决然选择比赛划水。小视野主页的文章不够看啊,催更。T1 一遍 ac;T2 纯暴力 60 分;T3 知道是强连通分量,推的时候按桥来推,这个不应该错;T4 做过,栽在了排
2022-03-23 12:59:30
191
原创 2021.8.24 比赛题整理
UPDATE 21/08/26更改题面、转移链接等。2021.8.24 新初一暑假测试七链接集合4 / 18,300 / 400。总结谁会想到分数第一和第二分别都三个同分的。。我的第二。。。状态不错,好好做了推了的都 AC 了 (虽然这次比赛题都是板子)。题目概述T1:贪心 + 模拟;T2:快速幂 + 逆元 + 进制模拟(除 T4 外最难的题);T3:KMP 的 nxt 数组应用;T4:树形 DP(全军覆没)。赛时情况(按提交顺序阐明。)T1 & T3:一遍 AC;
2022-03-23 12:59:05
239
原创 2021.8.26 比赛题整理
2021.8.26 2021CSPJ初二初一冲刺一链接集合18 / 32,188 / 400。总结被公开处刑了,麻了。T2 T4 做的不错,T1 拖后腿。比赛刚写完 T1 代码电脑突然不行,代码没了,这突发情况真没想到。影响到了 T1。若 T1 AC 了就 268 了。。写着是普及,结果后三道都是提高的。。题目概述T1:递推 OR 组合数应用;T2:较复杂贪心 + 优先队列;T3:树形 dp(又是它);T4:状压 + 宽搜。赛时情况T1:20 pts(杯具,耽误了一个多小时);
2022-03-23 12:58:26
394
原创 2021.10.4 比赛题整理
2021.10.4 2021CSPJ初二初一冲刺七链接集合总结炸了炸了。。T3 半天做了个寂寞。对算法不熟悉。T1:简单思维题;T2:KMP nxt 数组的运用;T3:二分 + 图,代码实现可用并查集;T4:四维树形 dp。T1题意设 a0←1a_0 \gets 1a0←1,an←ai+aja_n \gets a_i + a_jan←ai+aj(i,j 在 [0,n−1)[0,n-1)[0,n−1) 范围内随机)。求对于给定的 nnn,ana_nan 的期望值为多少。题解
2022-03-23 12:57:44
170
原创 P2999 [USACO10NOV]Chocolate Milk S 题解
前置知识 --> 拓扑排序这道题为什么要用拓扑排序呢?因据题意,每一个点奶的流量都有先后顺序,且顺序不得改动。重点在于本题入度,出度,队列等的运用。思路挤奶器:入度为 0,且可以最早入队列(因为它不受先后顺序的限制);混合器:混合器要放在每一个奶流都会经过的点,则该点的奶流量 = 总奶流量;while 入队出队操作:当队头的出度为 1 时,可以将之前记录下来的他的“子节点”操作之后,入队;答案统计:在将挤奶器入队时,统计总奶量,每一个挤奶器的奶量为 1, 并用 tot 统计,最后比较该点
2022-03-22 13:00:18
1467
原创 CF869C The Intriguing Obsession 题解
此题算法:模拟。题目概述由题意可得,此题是让我们连接三种不同颜色的点,要求同颜色的点距离大于等于 3 (每条边的距离为 1 ),任意两个点至多连 1 条边,问有多少种连接方案(答案需取模)。Part 1 - 主要思路首先,因为:同颜色的点距离大于等于 3 ,所以我们可以得出:显然,一个点不能与它同色的点相连;一个点不能同时与两个同色点相连。综上,只有 3 种连接方案—— a 与 b , b 与 c , a 与 c 。且! 3 种连接方案都是独立的。接着,我们就只用
2022-03-22 12:59:17
965
原创 LG-P6006 [USACO20JAN]Farmer John Solves 3SUM G 题解
区间内三元组个数(满足 ai+aj+ak=0ai + aj + ak = 0ai+aj+ak=0)(GZEZ 新初一第一次测试 第四题)在指定范围 [l,r][l, r][l,r] 内,求满足 ai+aj+ak=0ai + aj + ak = 0ai+aj+ak=0 的三元组的个数。思路:先预处理,时间复杂度是 O(n2)O(n^2)O(n2) ; 再查询,时间复杂度是 O(1)O(1)O(1) 。预处理:在确定了两端的数之后,中间的数 =−a[i]−a[j]= -a[i]-a[j]=−a
2022-03-22 12:56:07
339
原创 LG-P3049 [USACO12MAR]Landscaping S 题解
又是一道考试题对一排泥土进行三种操作,使其变为目标状态,求最小花费代价。请原谅我接下来奇怪的量词…思路大致方法:很明显,求代价,就是用 dp 。但是,你会发现直接去推动态转移方程是很难的,所以,我们选择把泥土“量化”。“量化泥土”:我们把泥土按量进行排列,例如:原数组是:1 2 3 4 ;转移后是:1 2 2 3 3 3 4 4 4 4 。这样一来, 我们就可以去处理 dp 数组 fff 了。初始化 dp 数组:我们定义 f[i][j]f[i][j]f[i][j] 表示用
2022-03-21 12:52:04
173
原创 P7714「EZEC-10」排列排序 题解
差分数组我们在每一次输入的时候,若 x=ix=ix=i ( xxx 为输入的数)可以直接 continuecontinuecontinue (因为是求最小值),若是 x!=ix!=ix!=i ,先存下来二者中的最大以及最小,并记录差分数组。为什么用差分数组?因为我们发现,如果将 iii 到 jjj 中的数排序,那么其中每一个数的贡献都是 1 ,我们用差分数组存下来,最后求前缀和。若一个点的差分数组不为零,我们就可以 ans++ans++ans++ ,无需考虑它差分数组具体的值(因为是求最小值)。C
2022-03-21 12:50:56
457
原创 B2138 最大质因子序列 题解
思路模拟。快读。这个就不用多说了。判断质数。这个是用于辅助后面得到最大质因数,细节就是为了避免超时,循环上限是 sqrt (x) (头文件记得加 include<cmath> ,除非你用万能头)。最大质因数的获取。从大到小枚举!! 不然一发 MLE 警告。主函数没什么好说的了,最好用 printf ,避免超时。Code#include<bits/stdc++.h>using namespace std;int read (){ int
2022-03-21 12:49:32
507
原创 UVA1327 King‘s Quest 题解
笔者没 ac ,因为没绑定没提交。但在其他 OJ 上提交 ac 了,可以确保代码正确性。UVA1327 King’s Quest 传送门一道强连通分量的板子题。思路:最终可以满足条件的女孩 既要王子喜欢又可以被娶(也就是巫师那个名单) ,这不就类似强连通分量吗?只要王子喜欢的女孩和王子在同一个强连通分量里就都满足条件。这道题和板子的区别主要在于建边和答案输出,主要说说这俩。1. 建边:在王子到喜欢的女孩之间建边;在可以被娶女孩和王子之间建边。这些结合题目及思路,不难理解。2
2022-03-21 12:47:32
161
原创 UVA1368 DNA序列 题解
一道字符串模拟题。思路输入 m 个字符串;从第 0 位到第 n - 1 位,统计每一个字符串该位的字母,并用变量存下个数,具体操作如下:for (int i = 0; i < n; i++){ t = a = g = c = 0; for (int j = 1; j <= m; j++) { if (str[j][i] == 'T') t++; if (str[j][i] == 'A') a++; if (str[j][i] == 'G') g++;
2022-03-21 12:46:47
572
原创 UVA610 街的方向 题解
题目分析一道桥的题(比模板难一点吧)。我们要在无向图中选择一些边,使得当它们变为有向边时,该图仍能连通。与其思考选择哪些边去改变,不如考虑哪些边不可以改。很明显,在有向图中,如果桥变成了单向边,这幅图肯定不能连通(可结合桥的定义理解)。那么我们只需要找出桥,也就是不能更改的边,并把他们输出两次(题目要求),则剩下的边就都可以改变,就输出一次即可。代码实现我们以 Tarjan 找桥的模板代码为基础,来写这道题。(为什么要用 Tarjan 找桥就不用再多说了吧。)概述:很简单,是桥就不能改,不
2022-03-21 12:46:16
460
原创 LG-P2941 Surround the Islands S 题解
P2941 [USACO09FEB]Surround the Islands S 传送门感觉其他有些题解有点简略,wtcl,一开始理解不了题意,我现在就写篇详细点点的吧。题目分析我们最开始输入的 nnn 条边 (u,v)(u,v)(u,v) 都是可以直接以 0 费用从 u 到 v 的。也就是题目中的走路,即 u 和 v 是同一岛上的不同顶点。接着输入的是从第 i 个点乘船到达其他 i(包括 i 点自己)所需要的费用。求解概述:为了保证最小费用,我们当然是走路到达同一岛上的点,乘船到
2022-03-21 12:45:30
484
原创 LG-P4394 [BalticOI 2008]选举 Easy 题解
一道 01 背包的题。题目概述我们要从若干党中挑选几个党出来,组成一个联合内阁,使得:内阁的党的总席位数要越多越好;阁内党席位总数要超过(已给出的)所有党的席位总数的一半;当其中席位数最小的党退出之后,其他阁内的党的总席位数要比总席位数的一半要少。求解在此题中,每一个党面临的问题只有被选或不被选。这很明显,就是背包 dp。我们当然是挑选席位数大的党选——这样删去它就不容易会出现阁内席位数仍大于总席位数一半的情况。然后就是背包的板子了。具体可以见 P1048 采药 背包模板
2022-03-21 12:44:44
124
原创 P2321 [HNOI2006]潘多拉的宝盒 题解
思路我们要先找到所有的升级序列,找出所有的包含与被包含的关系,然后找到一条最长链,满足题目要求。如何找到所有的包含关系?遍历每一对盒子,对于二者,我们用 dfs 扫一遍,如果有一个盒子在一个节点输出了串,而另一个没有,那么这两者就不存在包含关系。反之,两者就存在包含关系。我们就可以建一条有向边,从包含者指向被包含者。为什么求最长链?易得,在一个强连通分量中,肯定是存在一条链的。所以,我们只需要把一个个强连通分量缩点,然后找到一条把超级点(强连通分量)串起来的最长的链即可。最终答案,
2022-03-21 12:43:56
203
原创 数论 · 逆元
前言针对比赛学的一点点逆元,在这里记录一下其中一种方法。当然求逆元的方法有很多种,之后学到再回来写。 —— 2021.8.24UPDATE2021 - 11 - 25 填坑。添加了两种求逆元的方法 + 修改了一些写得不好(难看至极)的地方2021 - 12 - 01 补充了欧拉定理的证明。定义若 ax≡1(modb)ax \equiv 1\pmod bax≡1(modb) 且 a⊥ba\perp ba⊥b(a,b 互质),则称 xxx 为 aaa 的逆元。一、费马小定理 +
2022-03-21 12:43:32
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人