随笔分类 -  OJ -- BZOJ

摘要:题面 先把每个串反着插进$Trie$树 每个节点的子树内,可能有一些节点是某些字符串的开头 每个节点挂一棵权值线段树,记录这些节点对应的原来字符串的编号 查询的时候在线段树上二分即可 为了节省空间,使用线段树合并 阅读全文
posted @ 2019-01-23 14:15 guapisolo 阅读(168) 评论(0) 推荐(0)
摘要:题面:洛谷传送门 BZOJ传送门 标签里三个算法全都是提高组的,然而..这是一道神题 我们把这道题分为两个部分解决 1.找出所有咒语机两两之间的包含关系 2.求出咒语机的最长上升序列 我们假设咒语机$a,b$满足$a\in b$ 如果这个条件不成立,说明存在一个串$S$,$a$能输出,$b$不能输出 阅读全文
posted @ 2019-01-22 19:05 guapisolo 阅读(208) 评论(0) 推荐(0)
摘要:题面:洛谷传送门 BZOJ传送门 非常有意思的一道数学题,浓浓的$CF$风,然而我并没有想出来.. 我们想把一个$n$维空间用$n$维球分成尽可能多的块 而新增加一个$n$维球时,肯定要尽可能多地切割前几个球围成的不同空间 画画图容易发现$n=1$的规律,因为一条线段只能在两个端点处切割这条直线,所 阅读全文
posted @ 2019-01-22 15:05 guapisolo 阅读(279) 评论(0) 推荐(0)
摘要:题面: 洛谷传送门 BZOJ传送门 题目大意:求$F[i]=\sum\limits_{j<i}\frac{q_{j}}{(i-j)^2}-\sum\limits_{j>i}\frac{q_{j}}{(i-j)^2}$ 写的第一道不是板子的$FFT$题..然而并没有想出来 原式其实是一个类似于卷积的形 阅读全文
posted @ 2019-01-22 14:43 guapisolo 阅读(175) 评论(3) 推荐(0)
摘要:题目大意:略 题目传送门 数据结构好题,但据说直接上动态DP会容易处理不少,然而蒟蒻不会。一氧化碳大爷说还有一个$log$的做法,然而我只会$log^{2}$的.. 考虑静态时如何处理,设$f[x]$表示堵住$x$这棵子树的最小花费,$g[x]$表示$x$所有子节点的$f[x]$总和,$a[x]$表 阅读全文
posted @ 2019-01-14 16:20 guapisolo 阅读(199) 评论(0) 推荐(0)
摘要:题目大意:略 洛谷题面传送门 BZOJ题面传送门 注意题目的描述,是村庄在一个范围内去覆盖基站,而不是基站覆盖村庄,别理解错了 定义$f[i][k]$表示只考虑前i个村庄,一共建了$k$个基站,最后一个基站建在了i处,最小的总花费 $f[i][k]=min(f[j][k]+calc(j,i))\;c 阅读全文
posted @ 2019-01-13 15:42 guapisolo 阅读(201) 评论(0) 推荐(0)
摘要:题目大意:给你很多条线段,开头结尾是$[l,r]$,让你覆盖整个区间$[1,T]$,求最少的线段数 题目传送门 线段树优化$DP$裸题.. 先去掉所有能被其他线段包含的线段,这种线段一定不在最优解里 排序,让所有线段构成左右端点位置都递增的排列 定义$f[i]$表示第$i$条线段,覆盖到第$i$条线 阅读全文
posted @ 2019-01-12 20:46 guapisolo 阅读(193) 评论(0) 推荐(0)
摘要:题目大意:略 洛谷传送门 BZOJ传送门 观察式子$x_{i+1}=a\cdot x_{i}+b (mod\;p)$ 我们能用欧几里得算法求解$ax=c(mod\;b)$的线性同余方程问题 还能用$BSGS$算法求解$a^{x}=c(mod\;b)$的指数同余方程问题 而式子里的$b$这一项显得十分 阅读全文
posted @ 2019-01-10 18:58 guapisolo 阅读(230) 评论(1) 推荐(0)
摘要:题目大意:略 洛谷传送门 首先要知道这样一个公式不知道这个公式这道题还怎么做... $d(ij)=\sum\limits_{x=1}^{i} \sum\limits_{y=1}^{j}[gcd(x,y)==1]$ 具体证明可以参考这位神犇的博客 大意是说,令$k=i \cdot j$,把$k,i,j 阅读全文
posted @ 2019-01-05 14:13 guapisolo 阅读(177) 评论(0) 推荐(0)
摘要:题目大意:略 洛谷传送门 第一次不看题解做出来反演题,我好菜啊 最初推的式子里是把矩阵快速幂然后欧拉降幂,然后发现弄出来的矩阵不能直接相乘.. 但这依然改变不了反演玩的是套路的事实 以下默认$n \leq m$ 题目让我们求$\prod\limits_{i=1}^{n} \prod\limits_{ 阅读全文
posted @ 2019-01-05 08:40 guapisolo 阅读(195) 评论(0) 推荐(0)
摘要:和dynamic rankings这道题的思想一样 只不过是把树状数组换成线段树区间修改,求第$K$大的而不是第$K$小的 这道题还有负数,需要离散 阅读全文
posted @ 2019-01-04 13:59 guapisolo 阅读(173) 评论(0) 推荐(0)
摘要:题目大意:略 洛谷传送门 这道题在洛谷上数据比较强 貌似这个题比较常见的写法是树状数组套主席树,动态修改 我写的是整体二分 一开始的序列全都视为插入 对于修改操作,把它拆分成插入和删除两个操作 像$CDQ$分治一样,用结构体记录操作的位置,修改的权值等 假设为需要处理的询问分配了一个答案$mid$ 阅读全文
posted @ 2019-01-04 11:42 guapisolo 阅读(220) 评论(0) 推荐(0)
摘要:题目大意:略 洛谷传送门 多次询问第k小,考虑整体二分 考虑二分答案,为了避免同一权值的数出现在不同位置的情况,用一个$vector$存储权值为i的点在那些位置。而权值可能会很大,我们将其离散。 每次选择一个答案$mid$,把矩阵中权值为$[l,mid]$的点加入到二维树状数组中,即可在$O(log 阅读全文
posted @ 2019-01-03 20:13 guapisolo 阅读(199) 评论(0) 推荐(0)
摘要:题目大意:略 洛谷传送门 整体二分裸题 考虑只有一个国家的情况如何处理 对询问数量二分答案,暴力$O(m)$打差分,求前缀和验证,时间是$O(mlogK)$ 如果有$n$个国家,就是$O(nmlogK)$,非常不优秀的时间复杂度 发现我们对于每个国家都进行一次二分很浪费时间 考虑把国家分成一定数量的 阅读全文
posted @ 2019-01-03 18:20 guapisolo 阅读(153) 评论(0) 推荐(0)
摘要:题目大意: 洛谷传送门 这明明是一道KD-Tree,CDQ分治是TLE的做法 化简式子,$|x1-x2|-|y1-y2|=(x1+y1)-(x2+y2)$ 而$CDQ$分治只能解决$x1 \leq x2,y1 \leq y2$的情况 把每次插入操作都相当于一个三元组$<x,y,t>$,权值是$x+y 阅读全文
posted @ 2019-01-02 21:21 guapisolo 阅读(223) 评论(0) 推荐(0)
摘要:题目大意: 洛谷传送门 三维偏序裸题。。 每次操作都看成一个三元组$<x,y,t>$,表示$x,y$坐标和操作时间$t $ 询问操作拆成$4$个容斥 接下来就是$CDQ$了,外层按t排序,回溯时按$x$排序,用树状数组处理$y$这一维即可 阅读全文
posted @ 2019-01-02 18:20 guapisolo 阅读(150) 评论(0) 推荐(0)
摘要:题目大意: 洛谷传送门 不愧为SDOI的duliu题 第一问?二元组的最长不上升子序列长度?裸的三维偏序问题,直接上$CDQ$ 由于是不上升,需要查询某一范围的最大值,并不是前缀最大值,建议用线段树实现 第二问是个什么玩意?? 画画图发现需要正反各做一次$CDQ$来统计 如果某个位置正反的答案$-1 阅读全文
posted @ 2019-01-02 15:02 guapisolo 阅读(174) 评论(0) 推荐(0)
摘要:题目大意:略 洛谷传送门 和 [CQOI2015]动态逆序对 这道题一样的思路 一开始的序列视为$n$次插入操作 把每次交换操作看成四次操作,删除$x$,删除$y$,加入$x$,加入$y$ 把每次操作都看成一个三元组 $<x,w,t>$ 操作位置,权值,以及操作时间 变成了一道三维偏序裸题 外层按操 阅读全文
posted @ 2019-01-01 15:32 guapisolo 阅读(218) 评论(0) 推荐(0)
摘要:题目大意: 题面传送门 还是一道三维偏序题 每次操作都可以看成这样一个三元组 $<x,w,t>$ ,操作的位置,权值,修改时间 一开始的序列看成n次插入操作 我们先求出不删除时的逆序对总数量,再统计每次删除元素时,减少的逆序对数量 然后就是三维偏序裸题了吧,第一维时间,第二维操作位置,第三维权值,用 阅读全文
posted @ 2018-12-31 20:03 guapisolo 阅读(244) 评论(0) 推荐(0)
摘要:题目大意: 题面传送门 三维偏序裸题 首先,把三元组关于$a_{i}$排序 然后开始$CDQ$分治,回溯后按$b_{i}$排序 现在要处理左侧对右侧的影响了,显然现在左侧三元组的$a_{i}$都小于等于右侧 而$c_{i}$这一维需要用权值树状数组维护 归并排序时,已知左侧右侧两个指针分别是$i,j 阅读全文
posted @ 2018-12-31 19:41 guapisolo 阅读(191) 评论(0) 推荐(0)