09 2017 档案
摘要:1、Convert hex to base64 题意:给出一个hex编码过的字符串,将它进行base64加密 解题关键:直接利用base64库函数实现 2、Fixed XOR 题意:将两个16进制字符串进行异或 解题关键:将16进制字符串解码,对每个字符分别进行异或,最后编码成16进制即可。 3、S
阅读全文
摘要:题意:找出图中经过一次的格子个数。 解题关键: 组合数学的思想:先找出总的经过格子的次数,然后减去2倍的经过2次的格子个数。 1、总的求法:将长延展,当延展到n倍时,能够恰好到达右边的两个端点,则总格数可求出。 2、重复算法:可以找规律得到,途中会被划分成无数个小的正方形,对小正方形的边长进行分析,
阅读全文
摘要:题意:签到题,不叙述了 解题关键:模拟即可。
阅读全文
摘要:题意:区间内乘积最小值,带修改。解题关键:线段树裸题,考场上以为x y必须不等,还维护了次小值,尼玛嗨尼玛嗨,划水一整场,心态爆炸。 注意坐标需要+1
阅读全文
摘要:倍增: 复杂度:$O(n\log n)$ dc3:r数组和sa数组要开到3倍大小 复杂度:$O(n)$
阅读全文
摘要:题意:求字符串中不同子串的个数。 解题关键:每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。 1、总数减去height数组的和即可。 注意这里height中为什么不需要进行组合计数,因为,每一个height的左端点已经确定,所以只需变动右端点,总共$height[i
阅读全文
摘要:题意:可重叠的k次最长重复子串 解题关键:利用height数组对后缀进行分组,因为最长公共子串一定会在一个组内,所以判定每个组即可。二分答案,进行判定。
阅读全文
摘要:题意:多个字符串的最长公共子串。 解题关键:字符串的任何一个子串都是这个字符串的某个后缀的前缀。求A和B的最长公共子串等价于求A的后缀和B的后缀的最长公共前缀的最大值。 后缀数组的经典例题,连接在一起,二分长度,height数组遍历即可。 注意flag的问题,采用二分小于的方式,可能会出现有最优解但
阅读全文
摘要:题意:有N个学校,从每个学校都能从一个单向网络到另外一个学校。1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件。2:至少需要添加几条边,使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件。 解题关键:1、缩点之后求出入度为0的点的个数; 2、缩点之
阅读全文
摘要:题意:求存在模式串个数,不可重复。 解题关键:模板题。整理模板用。重复和不可重复的区别在下面已标出。主要是j的变化。
阅读全文
摘要:题意:求两个字符串前缀和后缀的最大相同字符串,并输出其长度。 解题关键:连接起来,kmp解决之。利用Next[len]的性质。 注意该长度 不能超过两个字符串中的任何一个的长度
阅读全文
摘要:题意:给定一个字符串,让你求出他最多由几个相同的连续子串连接而成。 解题关键:根据KMP的next函数的性质,已知字符串t第K个字符的next[k],那么d=k-next[k],如果k%d==0,那么t[1……k]最多可均匀的分成k/d份。也就是可以生成一个长度为d的重复度为k/d的字串。(这里脑子
阅读全文
摘要:在摊还分析中,通过求数据结构的一系列的操作的平均时间,来评价操作的代价。这样,即使这些操作中的某个单一操作的代价很高,也可以证明平均代价很低。摊还分析不涉及概率,它可以保证最坏情况下每个操作的平均性能。 摊还分析有三种常用的技术: 聚合分析,它确定$n$个操作的总代价的上界为$T(n)$,所以每个操
阅读全文
摘要:题意:求其他所有牛都认为其牛的牛的个数。 解题关键:targin算法模板题,缩点形成一棵树,并不一定是棵树,可能含有多个入度为0的点,寻找出度为0的点(缩点之后的点)的个数,如果个数大于0,则无解,否则输出该强连通分量内的个数。 注意targin算法的数组不需要memset。
阅读全文
摘要:题意:给出一些不合法的模式DNA串,给出一个原串,问最少需要修改多少个字符,使得原串中不包含非法串。 解题关键:多模式串匹配->AC自动机,求最优值->dp,注意在AC自动机上dp的套路。 AC自动机上的每个节点其实就是一种状态,进行模式匹配其实就是进行边的匹配 令$dp[i][j]$表示字符串长度
阅读全文
摘要:题意:你M个单词构成一个词典,每个单词有一个权值(单词出现多次算多个权值),现在要你构造一个不超过长度N的字符串,使得该字符串权值最大。如果出现多个答案,输出最短的,如果依然有多解,输出字典序最小的。 解题关键:最典型的AC自动机上跑dp。 令$dp[i][j] = x$表示走了i步到达j点的最大价
阅读全文
摘要:题意:长度不超过L,只由小写字母组成的,至少包含一个词根的单词,一共可能有多少个。 解题关键:利用补集转化的思想,先求一个词根也不包含的单词个数,然后用总的减去即可。长度不超过L需要用矩阵维数增加一倍来处理前缀和。 这里还有第二种考虑思路,只增加一维,自己写一个三维矩阵验证一下即可,最后一列每一行代
阅读全文
摘要:题意:有m种DNA序列是有疾病的,问有多少种长度为n的DNA序列不包含任何一种有疾病的DNA序列。(仅含A,T,C,G四个字符) 解题关键:AC自动机,实际上就是一个状态转移图,注意能少取模就少取模,尤其是在快速幂的时候,消耗时间极其巨大,此题效率差10倍。 先+=在进行取模,两者分开,也可以快1倍
阅读全文
摘要:密码分析的四种类型: 1、唯密文攻击 2、已知明文攻击 3、选择密文攻击 4、选择明文攻击 三种方法: 1、穷举攻击 2、统计分析 3、数学分析 单表代换与多表代换:凯撒密码与维吉尼亚密码 离散概率:离散型随机变量 1、均匀分布 2、点分布:分布向量 3、事件 4、、并集:P(AUB)<=P(A)+
阅读全文
摘要:题意:正反匹配模式串。 解题关键:需要建立vis数组,不然会超时,因为匹配串会匹配很多次模式串,而我们只记录一次,从而第二次以后可以直接break。 复杂度可从$O(500W)$降到$O(25W)$
阅读全文
摘要:解题关键:AC自动机模板题,注意字符匹配时若无法匹配,直接用%s即可。
阅读全文
摘要:题意:给出多种病毒的号码和特征码,计算在某串中各病毒匹配的次数。 解题关键:AC自动机模板题,多组输入坑人。
阅读全文
摘要:题意:给出n个病毒和m个网站,找出每一个网站中含有的病毒种类,并按病毒编号升序输出,最后统计含有病毒的网站个数。 每道AC自动机不同的地方就是end数组代表的意义,这里还需要加一个vis数组判断是否访问过。其他就是ASCII码可见字符为32-196 共95个字符。
阅读全文
摘要:题意:给定n个单词,一个字符串,问字符串中出现了多少个单词。 解题关键:AC自动机模板题,注意根据题意,匹配完成之后要置0. 注意char数组也可以用cin, 注意理解AC自动机,不可能在同一层 出现两个相同的前缀,不然会合并在一起的,所以一定会分层,所以可以依靠fail指针递归寻找。 AC自动机最
阅读全文
摘要:题意:某人在一棵树中在某处买物品,价格为i,在某处卖物品,价格为j,每单位距离花费价格1,求最大赚钱数。 解题关键:两次树形dp,分别求出每个点作为被减和被加情况下的最大值,最后取一下max即可。 该节点被减的情况,为他和他所在的子树上的最大值,并且是他的各父节点的被减,该节点被加情况的最大值; 该
阅读全文
摘要:题意:求树上距离为k的点对个数; 解题关键:练习一下点分治不用容斥 而直接做的做法。注意先查询,后更新。 不过这个方法有个缺陷,每次以一个新节点为根,必须memset mp数组,或许使用map会好些,更新序号一类用ca这种形式更好些。 试了一下,map更慢,应该是带log的原因。 点分治解法: 树形
阅读全文
摘要:题意:在一棵树中,求两点之间距离是3的倍数的概率。 解题关键:$p = \frac{{\sum {nu{m_0}*nu{m_0} + nu{m_1}*nu{m_2}*2} }}{{n*n}}$ 求概率分子分母必须对应,分母是无序的,则分子也必须是无序的。 复杂度:$O(n\log n)$
阅读全文
摘要:题意:问有多少条路径,符合路径上所有节点的权值乘积模1000003等于k。 解题关键:预处理阶乘逆元,然后通过hash和树形dp$O(1)$的判定乘积存在问题,注意此道题是如何处理路径保证不重复的,具有启发意义。 代码:2340ms,这段代码最重要的可取点就是如何通过操作省去memset的过程 复杂
阅读全文
摘要:题意:求树中点对距离<=k的无序点对个数。 解题关键:树上点分治,这个分治并没有传统分治的合并过程,只是分成各个小问题,并将各个小问题的答案相加即可,也就是每层的复杂度并不在合并的过程,是在每层的处理过程。 此题维护的是树上路径,考虑点分治。 点分治的模板题,首先设点x到当前子树跟root的距离为,
阅读全文
摘要:题意:求一张图的强连通分量,若为1,则输出yes,否则输出no。 解题关键:targin算法模板题。
阅读全文
摘要:https://projecteuler.net/problem=182 题意: 找出满足下列条件的所有$e$ 的和, - $1 < e < \varphi \left( {1009,3643} \right)$ - $gcd(e,φ)=1$ - 满足${m^e} \equiv m{\rm{ }}\
阅读全文
摘要:题意:给出一棵无根树,然后下面再给出m条边,把这m条边连上,每次你去两条边,规定一条是树边,一条是新边,问有多少种方案能使树断裂。 解题关键:边权转化为点权,记录每条边被环覆盖的次数,通过val[a]++,val[b]++,val[lca(a,b)]-=2,来控制每个点上面的边,所以树的顶点要去掉。
阅读全文
摘要:题意:维护树上两点之间的最短路径,其一,将点a的值变为b,其二,求路径上第k大的值。 解题关键:LCA+sort 复杂度:$O(qn\log n + n\log n)$ 数据弱不怪我
阅读全文
摘要:解题关键:求树上三点间的最短距离。 解题关键:$ans = (dis(a,b) + dis(a,c) + dis(b,c))/2$
阅读全文
摘要:题意:n棵树,求任意两点的最短距离。 解题关键:并查集判断两点是否位于一棵树上,然后求最短距离即可。此题可以直接对全部区间直接进行st表,因为first数组会将连接的两点的区间表示出来。
阅读全文
摘要:解题关键:LCA模板题 复杂度:$O(n\log n)$
阅读全文
摘要:题意:问树上两点之间的最短距离 解题关键:LCA模板题,在线做法,LCA->RMQ,用st表求解 这里是用first,rmq数组长度可以减半。
阅读全文
摘要:题意:给你一个n*n的矩阵,让你从中圈定一个小矩阵,其大小为b*b,有q个询问,每次询问告诉你小矩阵的左上角,求小矩阵内的最大值和最小值的差。 解题关键:二维st表模板题。 预处理复杂度:$O({n^2}\log n)$ 查询复杂度:$O(n)$
阅读全文
摘要:题意:给出n个数和Q个询问(l,r),对于每个询问求出(l,r)之间连续出现次数最多的次数。 解题关键:统计次数,转化为RMQ问题,运用st表求解,注意边界。 预处理复杂度:$O(n\log n)$
阅读全文

浙公网安备 33010602011771号