随笔分类 -  Source -- 各省省选

摘要:题面:BZOJ传送门 洛谷传送门 题目大意:略 细节贼多的虚树$DP$ 先考虑只有一次询问的情况 一个节点$x$可能被它子树内的一个到x距离最小的特殊点管辖,还可能被管辖fa[x]的特殊点管辖 跑两次$dfs$即可,时间$O(n)$ 再考虑一条链的情况 一条链上有很多个特殊点,相邻两个特殊点$x,y 阅读全文
posted @ 2019-04-01 22:22 guapisolo 阅读(232) 评论(0) 推荐(0)
摘要:码农题.. 很显然除了两个全局操作都能用可并堆完成 全局最大值用个multiset记录,每次合并时搞一搞就行了 注意使用multiset删除元素时 如果直接delete一个值,会把和这个值相同的所有元素全都删掉 如果find一个值得到一个迭代器,然后删除这个迭代器,就能只删除相同元素中的一个啦 因为 阅读全文
posted @ 2019-02-25 14:56 guapisolo 阅读(133) 评论(0) 推荐(0)
摘要:题面:BZOJ传送门 洛谷传送门 容易想到这样一个结论 把每次插入向量$(z,w)$改为在坐标系内插入一个点$(z,w)$,并对这些点建出凸包。 每次询问向量$(x,y)$的答案,设一条直线$l$垂直于$(x,y)$,用l去切所有已知向量构成的凸包,第一个切到的点就是最优解,根据$y$的正负来决定是 阅读全文
posted @ 2019-02-10 16:21 guapisolo 阅读(565) 评论(0) 推荐(0)
摘要:题面:洛谷传送门 BZOJ传送门 题目大意:给你一张有向无环图,边有边权,让我们用任意条从1号点开始的路径覆盖这张图,需要保证覆盖完成后图内所有边都被覆盖至少一次,求覆盖路径总长度的最小值 最小费用可行流板子题.. 有源汇最小费用可行流 给定一张有源汇网络流图,必须保证图中每条边的流量都$\in[l 阅读全文
posted @ 2019-02-02 14:41 guapisolo 阅读(407) 评论(0) 推荐(0)
摘要:题面:BZOJ传送门 洛谷传送门 线段树好题 题目保证$a$一定是正整数,容易发现计算结果是单调的 我们把询问离线,并按照从小到大排序 某次操作可能导致某些位置达到边界$L/R$ 根据单调性的结论 这些位置一定是从$1$向右扩展或者$Q$向左扩展 可以二分找到这个区间,然后区间覆盖 那么修改操作,归 阅读全文
posted @ 2019-01-27 13:44 guapisolo 阅读(234) 评论(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)
摘要:题目大意:略 洛谷题面传送门 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)
摘要:题目大意:略 洛谷传送门 首先要知道这样一个公式不知道这个公式这道题还怎么做... $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)
摘要:和dynamic rankings这道题的思想一样 只不过是把树状数组换成线段树区间修改,求第$K$大的而不是第$K$小的 这道题还有负数,需要离散 阅读全文
posted @ 2019-01-04 13:59 guapisolo 阅读(173) 评论(0) 推荐(0)
摘要:题目大意: 题面传送门 还是一道三维偏序题 每次操作都可以看成这样一个三元组 $<x,w,t>$ ,操作的位置,权值,修改时间 一开始的序列看成n次插入操作 我们先求出不删除时的逆序对总数量,再统计每次删除元素时,减少的逆序对数量 然后就是三维偏序裸题了吧,第一维时间,第二维操作位置,第三维权值,用 阅读全文
posted @ 2018-12-31 20:03 guapisolo 阅读(244) 评论(0) 推荐(0)
摘要:题目大意:略 传送门 硬是把两个题拼到了一起= = $dijkstra$搜出单源最短路,然后$dfs$建树,如果$dis_{v}=dis_{u}+e.val$,说明这条边在最短路图内,然后像$NOIP2018 D2T1$那样的思路,贪心地选出当前节点的所有子节点里,未被访问过的编号最小的节点递归,回 阅读全文
posted @ 2018-12-27 19:46 guapisolo 阅读(160) 评论(0) 推荐(0)
摘要:题目大意:略 涂色方式明显符合$LCT$里$access$操作的性质,相同颜色的节点在一条深度递增的链上 用$LCT$维护一个树上集合就好 因为它维护了树上集合,所以它别的啥都干不了了 发现树是静态的,可以用$dfs$序搞搞 把问题当成树上节点涂色会很麻烦 但只有相邻的不同颜色节点才会对答案产生影响 阅读全文
posted @ 2018-12-22 20:31 guapisolo 阅读(237) 评论(0) 推荐(0)
摘要:题目大意: 让你维护一个括号序列,支持 1.区间修改为同一种括号 2.区间内所有括号都反转 3.翻转整个区间,括号的方向不变 4.查询把某段区间变为合法的括号序列,至少需要修改多少次括号 给跪了,足足$de$了$3h$ 感觉这道题的思维难度比维修数列高多了 前三个操作都非常好搞,都是区间打标记 注意 阅读全文
posted @ 2018-12-21 21:02 guapisolo 阅读(169) 评论(0) 推荐(0)
摘要:题目大意:略 先建出$PAM$ 因为双倍回文串一定是4的倍数,所以找出$PAM$里所有$dep$能整除4的节点 看这个串是否存在一个回文后缀,长度恰好为它的一半,沿着$pre$链往上跳就行了 暴跳可能会$T$,所以倍增了跳 如果被卡空间,可以把trs数组当成倍增数组 阅读全文
posted @ 2018-12-19 12:52 guapisolo 阅读(210) 评论(0) 推荐(0)
摘要:题目大意:求$\sum_{1\leq i<j \leq N} suf_{i}+suf_{j}-2\cdot lcp(suf_{i},suf_{j})$ 先是后缀数组打错了,又是把+=打成了=,我是zz 我的做法比较奇葩.. 转化式子,原式=$\sum_{i=1}^{n-1}(i+1)\cdot i- 阅读全文
posted @ 2018-12-08 20:42 guapisolo 阅读(195) 评论(0) 推荐(0)
摘要:洛谷传送门 题目大意:太长略 每新加入一个僵尸,容易得到方程$ans[i]=max{\frac{sum_{i}-sum_{j-1}}{s_{i}+d(i-j)}}$ 即从头开始每一段僵尸都需要在规定距离内被消灭 展开式子,可得$ans[i]=max{\frac{sum_{i}-sum_{j-1}}{ 阅读全文
posted @ 2018-12-02 14:44 guapisolo 阅读(165) 评论(0) 推荐(0)
摘要:洛谷传送门 题目: Fish 是一条生活在海里的鱼,有一天他很无聊,就开始数数玩。他数数玩的具体规则是: 确定数数的进制$B$ 确定一个数数的区间$[L, R]$ 对于$[L, R] $间的每一个数,把该数视为一个字符串,列出该字符串的每一个(连续的)子串对应的$B$进制数的值。 对所有列出的数求和 阅读全文
posted @ 2018-11-30 14:10 guapisolo 阅读(488) 评论(0) 推荐(1)
摘要:题目大意:给你一个长度为$n$的序列,让你找出一段子序列,求其中的 次大值 异或 序列里一个数 能得到的最大值 先对序列建出可持久化$Trie$ 按元素的值从小到大遍历,设当前元素的位置是i,找出它左右离它最近第一个比$a_{i}$的位置$l1,r1$,再找出第二个比$a_{i}$大的位置$l2,r 阅读全文
posted @ 2018-11-27 18:30 guapisolo 阅读(280) 评论(0) 推荐(0)