03 2021 档案
摘要:题意:有一张有向图,每个点都有点权,求某一路径的最大权值,重复经过的点的权值只计算一次. 题解:因为存在环什么的,所以我们直接求肯定不好搞,那么我们可以先进行缩点,当找完一个强连通分量后,将其中的所有点权贡献给缩完后的点,缩完点后可以再建新边,注意这里我为了省空间没有记录两个强连通分量之间的重边,但
阅读全文
摘要:题意:有$n$个点,$m$条边,问你最少加多少条边,使得点$s$可以走到任何一个点. 题解:我们直接用tarjan缩点后,判断除了$s$以外强连通分量的入度为$0$的个数即可. 代码: #include <bits/stdc++.h> #define ll long long #define fi
阅读全文
摘要:每次向下搜点,$dfn[i]$表示搜到第$i$点时的编号,$low[i]$表示第$i$个点能到达的最小的点的编号,我们在搜的时候可以把路径上的点存入到栈中,当$dfn[i]=low[i]$时,说明我们已经找完一个强连通子图了,此时就可以把栈中的元素出栈得到一个强连通子图. 代码: #include
阅读全文
摘要:题意:枚举$[1,m]$,给你$n$个数据,每次数据有三个数$t,x,y$,如果$t=1$,那么最多可以操作$y$次,每次看可以对当前的数+=x,如果$t=2$就是每次*=x,问你最少遍历到第几组数据可以得到$i$,如果得不到就输出$-1$. 题解:我们可以直接遍历$n$组数据,每次反着枚举$m$,
阅读全文
摘要:题意:有$n$块板子,一个能量为$k$的粒子,粒子可以直接穿过板子,当粒子穿过一个板子时,会产生一个反方向的能量为$k-1$的粒子,不存在能量为$0$的粒子,问你将能量为$k$的粒子从最左边向板子射出时,会产生多少粒子? 题解:我们记$dp[i][j]$,表示能量为$i$且要穿过$j$个板子的粒子能
阅读全文
摘要:题意:给你一个字符串,要求删去重复的字母,使得只剩下一个字母,那么最后的得到的字符串每个字母都只出现一次,问你怎么操作使得最后的字符串字典序最大. 题解:我们先用后缀和处理每个字母出现的次数,然后再用序列自动机预处理一下,首先我们先得到删去重复字母后字符串的长度,然后再去枚举. 因为要求字典序最大,
阅读全文
摘要:题意:RT,给你一个字符串,问你最少分割多少子串,满足这些子串均为D型回文串. 题解:首先,判断回文我们可以用字符串hash来处理,这里不再赘述. 我们设$dp_i$,表示遍历到$i$位置时我们最少要分割多少子串来满足条件,我们看D型回文串的第一个条件,那么有:\(dp[i]=min(dp[i],m
阅读全文
摘要:题意:对于两个数$u$和$v$,如果$u$&\(v\)=\(v\),那么就代表$u$可以走到点$u+v$,现在你可以对任意两个数进行操作,给你$q$个询问,每次问你$u$是否可以走到$v$. 题解:其实不难发现,如果$u$&\(v\)=\(v\),那么$v$一定是不大于$u$的,并且$v$对应二进制
阅读全文
摘要:题意:有一辆火车在$A$点和$B$点之间来回跑,到达$B$点后会停留一段时间,火车从$A$点出发,你刚开始就坐在火车上,你每过一段时间就会睡觉,问你能否在醒着的时候在$B$点下车. 题解:题目中的不等关系式已经给的很明确了,因为区间范围最大为$500$,所以我们可以$O(n^2)$枚举两个关系式的时
阅读全文