|
|
|
|
|
03 2022 档案
[KDTree]数列
摘要:NKOJ传送门 describtion 给你一个序列,每个序列有编号(它本身的位置),标识符,数值。 有4种操作 op=0:l,r,x,y将编号在[l,r]的数值x+y op=1:l,r,x,y将标识在[l,r]的数值x+y op=2:l,r将编号在[l,r]的数值和 op=3:l,r将标识在[l,
阅读全文
区间
摘要:NKOJ传送门 description 给定 n段区间 [li,ri]。从中选择若干段(至少2段)区间,最大化它们的交集长度与并集长度的乘积。 solution 首先只会选恰好2段。 因为如果选多段,删边不会让交集长度变小,留下左端点最小的边和右端点最大的边并集也不会改变,所以可以用2段替代
阅读全文
[NOI2019] 弹跳
摘要:传送门P5471 desciption 有 n个城市,所有城市在 w∗h的网格图上,不同城市坐标不同。 有 m个弹跳机, i号弹跳机可以从城市 pi到 li≤x≤ri, di≤y≤ui的城市 问从城市1出发到所有点的最短路。 solution kd
阅读全文
「NOI2019」序列
摘要:NKOJ卡常卡不过QAQ description 给两个A,B序列,让你分别在A,B中各选k个数,其中至少有L对下标相等。 Solution 把问题转化为至多选n-K对下标不同的对。 配对问题就用费用流…… 同坐标A,B两两连边。 然后有一个虚拟点,所有点A连向它,它又连向所有点B。代表不同下标的点
阅读全文
[学习笔记] WQS二分
摘要:讲述人 通常我们需要求一些有个数限制的答案 令 g(i)就是满足选 i个……所得到的答案 现在我们需要求解的是 g(x) 如果将限制和结果映射到二位坐标系上,即 (i,g(i)) WQS能解决的前提是:所有点构成的是凸性的函数。(或者斜率[g(i)-g(i-1)]是单调的) 显然,我们不能直
阅读全文
「JOISC 2020 Day1」汉堡肉
摘要:我终于学会打开机房的LOJ了! description LOJ3272 有 n(n<=2∗105)个矩形,让你找 k(k<=4)个点可以覆盖所有矩形(点可重复),输出一种方案。(保证有解) Solution 可以注意到k很小。 从边界考虑。找到x=max(l[]),y=min(r[]),x=m
阅读全文
[BJOI2017]魔法咒语
摘要:descibtion 给你 n个元素串和m个诅咒串,问你能构造长度为 L的字符串的方案数,字符串由元素串拼接而成且不包含诅咒串。 n<=50,m<=50,元素串总长和诅咒串总长均<=100,L<=108 但是这是一道需要数据点分治的题,具体看下面的数据范围 Solution 前60pt
阅读全文
[BJOI2014]想法
摘要:参考 P4581传送门 题意:给DAG,问每个点可以由多少个叶子到达。 思路: 随机化!!(题面有提示) 这道题利用在一个范围内随机的数期望均分范围的性质。 直接每个叶子在 [0,MaxRand]随机化权值w[],然后每个非叶子节点求能到它的叶子中w的最小值。 由于上面说的性质,最小值期望是:
阅读全文
【AC自动机】背单词
摘要:题意: 0 s v:添加价值为v的字符串s 1 t:查询t中含的s的权值和。(不停位置算多次) 思路: 在线AC自动机。 同学用过一个妙妙子的分块算法。 这里用二进制分组:通常用作把在线数据结构问题转离线 即当前有n个串。然后按n的二进制分成( <=log2n)个AC自动机分别维护答案。 e
阅读全文
行列式&矩阵树定理
摘要:行列式: 参考 oi-wiki 定义 对于一个 n∗n的矩阵A行列式取值(标量) det(A)=|A|=∑p(−1)τ(p)n∏i=1ai,pi τ(p)即排列 p的逆序对个数。 性质 证明后面再补 1.$|A
阅读全文
[NOI2011]阿狸打字机
摘要:题意:一开始是个空串s,有三种操作:(1.末尾加一个字符 2.末尾减一个字符 3.存储该字符串) 思路: 一开始在trie树上动态加点很好处理,3操作的时候记录一下此时trie树上的pos,同时记录dep,fa后面有用。 建AC自动机,因为这道题的大致思路还是:y包含于x,则x的所有前缀(trie树
阅读全文
[TJOI2013]单词
摘要:题意:给n个字符串,问每个字符串在所有串里出现几次。 思路:判断一个整串与其它串之间的包含关系通常用AC自动机。fail树是我们想象中的树,但是它可以帮助我们更好的理解AC自动机。 1.fail树上的每个前缀都对应fail树里面的节点。通常节点存cnt[]表示有多少个串经过该点(即多少个前缀) 2.
阅读全文
[SDOI2014] 数数
摘要:题意:问有多少个<=n( 101201)的数满足下面所给的模式串没有在其中出现过 思路:首先一堆串没在构造的串中,套路就是AC自动机上dp,不经过cnt[]>0的点。 不过<=n怎么做呢?从n范围容易想到数位dp。 不过有一种更巧妙的方法: 首先位数<n,每位没有限制 (类似康托展开:每
阅读全文
[CF1073G]LCP问题
摘要:题意:给一个长n的字符串S,q组询问,每组给两个集合A,B。求集合A中的点和集合B中的点所有组合情况的lcp的和。 思路: 好像比较常规,可是代码能力差还是调了1.5h。主要还是虚树板子不熟(加入的时候点要去重) SAM+虚树+虚树上dp 两个后缀的lca相当于后缀树上两个对应节点的LCA的len。
阅读全文
广义SAM[学习笔记]
摘要:参考 还有首先你要会SAM吧~ 用途 相比与单串SAM,广义自动机能存储的是多个字符串。 有两种写法,第一种是离线利用trie树结构,第二种是在线伪广义SAM 离线+Trie 首先构建出trie树。 然后在trie树上BFS(),用 pos[u]映射trie树上 u节点对应SAM上的节点。 为什
阅读全文
SAM[详细~bushi][学习笔记]
摘要:基础性质概念 后缀自动机:S的SAM是个DAG,每个节点叫状态,每条带字符ch边表示+ch转移,从开始节点往下,任何一条路径都会对应一个S的子串。 不过为什么要叫"后缀"自动机呢? endpos集合:endpos(s)={s的所有右端点}[s为S的一个子串] 状态(节点):把endpos{}相同的等
阅读全文
[整体二分]数列切割
摘要:题意:把长度为n的数列分成m连续段,每段非空且价值为该段内相等的数的不同下标的对数 思路:发现转移决策点是有单调性的,因此整体二分决策点。算出范围内的一个mid的决策点,就可以分治下去了。 code: #include<bits/stdc++.h> using namespace std; type
阅读全文
[CTSC2018]混合果汁
摘要:题意:有n杯果汁,m个小朋友。每杯果汁有三个量:美味度,每升价格,体积上限。然后可以在体积上限内自由搭混合果汁,美味度为所选的美味度的最小值。每个小朋友想要用不超过p块钱,买至少nL果汁,问每个小朋友能买到混合果汁的美味度最大值是多少? 思路:求美味度最小值最大,显然可二分。多个二分的询问想到整体二
阅读全文
【LNOI2014】LCA
摘要:题意 有一个很巧妙的转化:求x,y的dep[lca(x,y)]可以先x到根的路径上加1,然后查询y到根路径上的和。 所以x->[l,r]的lca和,可以转化为,先把[l,r]中每个到根的路径+1,再求一次x到根的前缀和。 然后[l,r]这种显然可以差分为两个询问[1..r]和[1..l-1],因此先
阅读全文
整体二分
摘要:思想: 利用对值范围分治同时解决多个二分性质的问题。 具体见某篇论文,写的很好。
阅读全文
|
|