随笔分类 - ICPC-数据结构
摘要:https://codeforces.com/problemset/problem/892/E 把询问离线,分步回答. #include<bits/stdc++.h> #define ll long long #define rep(ii,a,b) for(int ii=a;ii<=b;++ii)
阅读全文
摘要:给你一棵有 n 个点的树 树上每个节点都有一种颜色 让你求每个点其子树出现最多的颜色,的节点编号 可以有多个最大值,一起计算. 裸的线段树合并,边dfs边合并就行了,最后把父亲放进去
阅读全文
摘要:https://www.luogu.org/problem/P2056 题解:来自https://blog.csdn.net/ccsu_cat/article/details/101036382 这代码是真的长,一码就是150行+ 特殊之处在于这个题需要维护一个可删堆 #include<bits/s
阅读全文
摘要:http://acm.hdu.edu.cn/search.php?field=problem&key=642ccpcQHD&source=1&searchmode=source 6734 签到: 6735 网络流建图 6731 几何+手写hashmap 6739 DP,6*6*n 6740 水kmp
阅读全文
摘要:a*b%mod==k等价于k*inv(b)%mod==a 然后树分治,用hashmap记录即可,unorder_map/map貌似会TLE,我手写了一个 注意这个小范围的逆元可以直接线性处理 复杂度$nlogn*hashmap$ 跑的还挺快的
阅读全文
摘要:https://nanti.jisuanke.com/t/41415 因为对于询问$\sum |s|<=1e5$,因此$|s|$的种类数$<=\sqrt{1e5}$ 我们分组标记,就变成了$\sqrt{1e5}$次询问了,我们暴力去跑, 复杂度$1e5\sqrt{1e5}*hashmap$ 暴力+哈
阅读全文
摘要:https://nanti.jisuanke.com/t/41356 对于带修的二维数点,可以bit套主席树,也可CDQ三维偏序 但是最后我选择分块套BIT暴力... 复杂度为$m(blocksize+blocknum*logn)$ 显然,如果按照$\sqrt{n}$分块,并不是最优的 我们可以适当
阅读全文
摘要:分析过程如下: 1.由于输入为一个排列,那么可以推算出,符合条件的点对一定是$nlogn$级别的 2.询问等价于查询$[l,r]$内有多少个$(x,y)$满足$l≤x$ 且 $y<=r$ 3.我们发现,这就是一个二维偏序问题 4.更直观地,我们可以把每个满足要求的点对看做一个二维平面上的点$(x,y
阅读全文
摘要:https://codeforces.com/contest/1217/problem/E 1.显然,最终的集合一定只包含2个元素 2.这两个元素一定是某一位上重叠的最小值和次小值 位数很小,最多10个 所以做法呼之欲出,开10棵树,分别维护每一个位上,存在值的所有数字中,最小的2个数字即可
阅读全文
摘要:#pragma GCC optimize("Ofast") #include<bits/stdc++.h> #define ll long long #define ull unsigned long long #define fi first #define se second #define mp make_pair #define pii pair<ll,ll> #define all(x)
阅读全文
摘要:做法: 把每次询问按容斥定理分成四个二维前缀和查询,然后对x排序,扫描线即可
阅读全文
摘要:给一个长为n的字符串,m次询问,每次求子串[l,r]第k次出现的起点位置 做法: 数据量很大,输入的字符串/询问总量可以达到1e5*5,必须尽量实现单次$O(logn)$的查询和至多$O(nlogn)$的预处理 1.子串[l,r]一定是某个后缀的前缀,而"后缀的前缀的重复出现"这个问题可以很容易想到
阅读全文
摘要:hihocoder 1403: 求一个字符串中至少出现了K次的最长可重叠子串 做法:预处理出height,每次用单调队列线性求区间最小值即可 hihocoder1407: 求字符串中最长的至少不重叠地出现了2次的子串 做法:预处理出height,二分答案,每次检查每一个连续的height<mid的区
阅读全文
摘要:利用RMQ求子串lcp的基础题,这个板子是我之前的,比较蠢的一种实现 后面试试用最新的板子AC一下
阅读全文
摘要:就是简单的记录一下代码,前几天写后缀数组+单调栈/单调队列写的有点傻.... 首先是hdu1506单调栈: 然后是p1440
阅读全文
摘要:1.不能以某些位置结尾=不能以某些位置开头,于是倒转字符串 2.不考虑禁止的情况,则题目转化为height数组上求最大矩形,进行两次单调栈即可 3.考虑禁止的情况,实际上就等于计算次数的时候,减少合法区间内的1的个数 嗯,顺便存一下最终的fastio和后缀数组板子,以后应该不会再换了
阅读全文
摘要:n个字符串 m次询问, 每次询问,想知道是否在n个字符串中存在一个恰好有一个位置不同的字符串 做法: 1.字符串哈希,如果单纯用ull自然溢出,会被卡碰撞,然后wa27,需要自定义一个模数 2.字典树上dfs一下就行,注意剪枝
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6621 每个点维护该点内元素排序后的结果,每次寻味取出所有可能有解的区间 对每个区间二分,得到一个ub,一个lb,然后双向遍历每个指针k轮,每次取出最小的值,然后移动一次指针 第k轮得到的即为答案 复杂度$O(nl
阅读全文
摘要:http://acm.scu.edu.cn/soj/problem.action?id=3030 给m个病毒串,问多少种不同的长度为n的基因序列不包含病毒串? 题解: 把所有病毒插入AC自动机的Tire树中, 我们把Tire树上的标记节点认为是一种包含了病毒的基因序列的后缀 因此我们建立Fail指针
阅读全文

浙公网安备 33010602011771号