上一页 1 2 3 4 5 6 7 ··· 18 下一页
摘要: 题解: 的确是动态树好题 首先由于每个点只有一个出边 这个图构成了基环内向树 我们观察那个同余方程组 一旦形成环的话我们就能知道环上点以及能连向环上点的值是多少了 所以我们只需要用一种结构来维护两个不是直接相连点的状态 由于有删边连边操作,比较容易想到lct 我们按照套路将它拆掉一条边形成一颗树 因 阅读全文
posted @ 2018-12-19 21:04 尹吴潇 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题解: 和hnoi2018day2t1基本一样 我想了半小时想出了一个很麻烦的做法 写了之后发现假掉了 刚开始想的是 先预处理出每个门要打开至少要在左边的哪个点$L[]$,右边的哪个点$R[]$ 对每个位置要去二分出右端点(左端点同理) 然后合法的判定方法是 在$MIN(L[k])~i-1$这一段 阅读全文
posted @ 2018-12-19 20:42 尹吴潇 阅读(615) 评论(1) 推荐(0) 编辑
摘要: 题意: 区间+k,查询=c的个数(c一开始给定) 1.当k为正数 2.不保证k为正数 题解: 两个的复杂度是不一样的 1的话显然每个数只会成为1次c 我们记录区间比c小的最大值就可以了 每次进入一个区间当且仅当这个区间有+k>c的数 复杂度$nlogn$ 2的话我们考虑分块 里面开个数组维护一下从小 阅读全文
posted @ 2018-12-19 14:10 尹吴潇 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题解: 很套路的题目 我们按照询问中的不算的个数是否大于$block$分类 如果大于,就$O(n)dp$一下 如果小于,就预处理出到每个点前$block$小的点 $block取\sqrt{n}$的话复杂度就是$n\sqrt{n}$的 阅读全文
posted @ 2018-12-19 14:04 尹吴潇 阅读(359) 评论(0) 推荐(0) 编辑
摘要: D 乱搞题。。发现只有a[i]=1是特殊的 瞎搞一下 E 发现一段的贡献是出现次数最多的-为c个数 然后考虑分别对每种颜色做一下 然后每次只有这种颜色和他们之间是有用的 然后做个最大区间和就好了 F 。。。。我不太会啊。。 首先要造trie树 然后我并不太会复杂度优秀的dp G 傻逼最大权闭合子图题 阅读全文
posted @ 2018-12-18 20:39 尹吴潇 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题解: D: 比较显然这个图得是二分图才行 然后每个二分图上的方案是$(2^a+2^b) (a,b是两种颜色的个数)$ E: 我tm就不该先写bitset的 正解和bitset都很好想 因为是个排列,所以所有元素都不同,会有很多性质 bitset就是我们对序列维护一个前缀和表示前i位有哪些数 发现你 阅读全文
posted @ 2018-12-18 16:21 尹吴潇 阅读(194) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/qq_33229466/article/details/75042895 https://www.cnblogs.com/gzy-cjoier/p/8426987.html http://www.cnblogs.com/zhouzhendong/p/Sti 阅读全文
posted @ 2018-12-17 11:03 尹吴潇 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 题解: 普通的$min-max$容斥是用来求最后出现元素的期望之类的 $kth min-max$容斥进一步解决倒数第k个出现的元素的期望 给出公式: $kthmax(S)=\sum\limits_{T \in S} {} {(-1)}^{|T|-k}C_{|T|-1}^{k-1}min(T)$ 例题 阅读全文
posted @ 2018-12-17 10:40 尹吴潇 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 1.给定一张 n 个点 m 条边的带权无向联通图,q 次询问,每次询问 ui 到 vi 的最短 路长度。 $n, q ≤ 10^5 , m − n ≤ 20$ 题解: 我记得是cf的题 我们只需要先随便搞一颗树 然后对于剩下的$m-n$条边就特殊处理一下 我们把它连$k=2*(m-n)$个点提出来, 阅读全文
posted @ 2018-12-16 11:27 尹吴潇 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题解: 1.树的直径有一种找法是找两次最远点 于是这可以证明一个性质 树上一个点到最远点的距离等于到一条直径两个端点的较大值 2.合并两颗树的时候,新树的直径为两颗树的4个直径两两组合的最大值(有多条取一条就可以) 3.另一个性质 树的所有直径一定有一个公共交点 对于两条,我们很好证,只需要找到他们 阅读全文
posted @ 2018-12-16 11:13 尹吴潇 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 题解: nlog^2的做法满世界都会 有一个nlogn的做法 先考虑所有元素都不存在相同的情况 我们会发现,如果a,b是一对满足要求的 那么任取他们的(i,j) (i,k) (j,k) 会形成0对逆序对 不然形成两对逆序对 于是我们只需要对这分别求一下逆序对就行了 阅读全文
posted @ 2018-12-16 00:20 尹吴潇 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 题解: 一道优秀的题目 有几种做法: 1.维护后缀和 刚开始我想的是维护前缀和 然后用$sum[x]-sum[y]>=dep[x]-dep[y]$来做 但是这样子树赋值为0这个操作就很难进行了 因为你查找的是链上最小值,所以不改子树上面的节点是做不了的 那我们换一种方式,单点改,查询区间最大后缀和 阅读全文
posted @ 2018-12-15 18:47 尹吴潇 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题解: 之前听说过这个东西但没有学 令$max(S)$表示S中编号最大的元素,$min(S)$表示编号中最小的元素 $$max(S)=\sum{T \in S} {(-1)}^{|T|+1} min(T) $$ $$min(S)=\sum{T \in S} {(-1)}^{|T|+1} max(T) 阅读全文
posted @ 2018-12-14 20:07 尹吴潇 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题意: https://www.cnblogs.com/cjyyb/p/9065801.html 题解: 阅读全文
posted @ 2018-12-14 16:35 尹吴潇 阅读(467) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-12-14 16:09 尹吴潇 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先这类题目本身是一个dp/树形dp 然后带上了修改(ddp) 为了权衡查询和修改的时间,我们采用树剖来维护 假设我们能够对每个点维护除了重儿子之外的信息 那么我们的修改只需要修改log个节点,查询只需要把从当前点到最后一个重儿子的信息合并即可 观察这一题的转移方程 $$f[i][0]=\s 阅读全文
posted @ 2018-12-14 16:04 尹吴潇 阅读(431) 评论(0) 推荐(1) 编辑
摘要: 题解: 由博弈论可以知道题目等价于求这$n$个数$\^$为0 快速幂$+fwt$ 这样是$nlog^2$的 并不能过 而且得注意$m$的数组$\^$一下会生成$2m$ 可以一次$fwt$之后最后再$ifwt$回去 复杂度$nlogn$ 阅读全文
posted @ 2018-12-14 14:36 尹吴潇 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 1 阅读全文
posted @ 2018-12-14 11:18 尹吴潇 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 在被两题卡了常数之后,花了很久优化了自己的模板 现在的一般来说任意模数求逆1s跑3e5,exp跑1e5是没啥问题的(自己电脑,可能比luogu慢一倍) 当模数是$998244353,1004535809,9985661441$的时候(这$3$个的原根都是$3$) 我们会使用$ntt$来求解 $ntt 阅读全文
posted @ 2018-12-14 09:01 尹吴潇 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 题解: 网上的做法好像都是容斥 那就先说一下容斥 首先问题等价于求下面这个式子的方案数 $$\sum_{i=1}^{n} ai (0<ai<i) =k$$ 直接$dp$复杂度是$nk$的,无法接受 我们考虑容斥 答案=所有-至少1个不满足+至少2个不满足-.... 而不满足等价于$ai>=i$ 那么 阅读全文
posted @ 2018-12-13 16:15 尹吴潇 阅读(527) 评论(0) 推荐(1) 编辑
摘要: 题解: 首先考虑三维前缀和 我们需要$2^t$来容斥 但我们可以做到$t$ 其实就是我们先把行拼起来,再把列拼起来。。。 另外一种一般是状压dp,$g[i]=\sum_{j \in i }^{} f[j]$ 这个东西暴力是$3^n$的,我们利用和上面同样的方法做到$2^n*logn$ 原理是一样的, 阅读全文
posted @ 2018-12-12 12:29 尹吴潇 阅读(433) 评论(0) 推荐(0) 编辑
摘要: 题解: 注意到$ai$只有$1e6$这件事情肯定要枚举和这个有关的东西 考虑枚举$ai\&aj$的值就可以了 那么这个集合一定是ai,aj的子集 于是我们对每个集合从大到小枚举丢掉一位转移就行了 这实际上放缩了条件但显然最大值不变 这题并不用用到高维前缀和。。因为重复计数是没有关系的 当然高维前缀和 阅读全文
posted @ 2018-12-12 11:32 尹吴潇 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题解: 路径统计比较容易想到点分治和dp dp的话是f[i][j]表示以i为根,取了i,颜色数状态为j的方案数 但是转移这里如果暴力转移就是$(2^k)^2$了 于是用FWT优化集合或 另外http://www.cnblogs.com/sclbgw7/p/9508235.html给出了一种技巧优化空 阅读全文
posted @ 2018-12-12 10:50 尹吴潇 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 题解: 很久之前写过一篇。。但好像写的不太正常 就重新写一篇 对于质数有一种朴素的crt合并 但其实那个没啥用。。那个能做的扩展crt都能做 并且那个好像不能动态加方程组 所以就会扩展crt就行了 扩展crt的原理在于不断合并两个同余方程,于是我们把问题变成如何合并两个同余方程 $$x \equiv 阅读全文
posted @ 2018-12-12 09:42 尹吴潇 阅读(193) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-12-12 09:30 尹吴潇 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 题解: https://www.cnblogs.com/zhoushuyu/p/10077241.html 看到这么一篇,发现挺不错的。。 阅读全文
posted @ 2018-12-11 20:49 尹吴潇 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题意: 在一个仅含有$a,b$的字符串里选取一个子序列,使得: 1.位置和字符都关于某条对称轴对称; 2.不能是连续的一段。 题解: 很久以前写的题解太扯淡了。。重新写一篇 首先对于限制$2$我们可以把它转化成没有限制-连续回文子串 然后我们发现问题等价于枚举对称轴然后求有几个位置关于它对称 至今不 阅读全文
posted @ 2018-12-11 20:49 尹吴潇 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 题解: 首先这个东西因为强制在线区间查询 所以外面得套线段树了 然后考虑几条线段怎么判定 我们只需要按照右端点排序,然后查询的时候查找最右节点的前缀最大值就可以了 然后怎么合并子区间信息呢 (刚开始我很zz的觉得应该要线段树合并。。) 线段树都保证了区间一样大每个点暴力也就会算log次。。 于是就直 阅读全文
posted @ 2018-12-11 18:20 尹吴潇 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题解: 想找到树剖的题写写,然后就找到了这么一题 树剖+线段树+线性基显然 分析一下复杂度就上天了 $nlog^2*60^2$ 不过树剖的log我忽略一下。。线性基合并肯定跑不满假设只有60.。 差不多还可以跑跑 于是就写了,然后竟然过了 当然感觉是数据并不强的原因。。 然而这题用倍增+线性基$nl 阅读全文
posted @ 2018-12-11 18:04 尹吴潇 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 题解: 和这件zhcs的那题有点像 第一种做法是考虑i,i+1之间的贡献 这样子就是矩形加减然后求矩形最小值个数 另一种做法是我们从左向右维护mx-nx-r+l 跟之前那题一样我们知道这个的最小值为0 另外我们只需要从右向左维护一个单调队列,这样区间取min/max(每个数插入删除一次) 就可以变成 阅读全文
posted @ 2018-12-11 10:39 尹吴潇 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题意: 有$X + Y + Z$个人,第$i$个人有$Ai$个金币,$Bi$个银币,$Ci$个铜币。 选出$X$个人获得其金币,选出$Y$ 个人获得其银币,选出$Z$个人获得 其铜币,在不重复选某个人的前提下,最大化获得的币的总数。 $X + Y + Z ≤ 10^5$ 题解: 一道比较好的题 首先 阅读全文
posted @ 2018-12-11 09:47 尹吴潇 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 题解: 傻逼题 直接从左向右扫描每个点作为右端点 然后单点修改区间查询就行了 另外一种更直观的做法就是$(i,j)$之间产生了$(j-i)$ 于是变成矩形查最大值,kd-tree维护 代码: 阅读全文
posted @ 2018-12-11 09:30 尹吴潇 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题解: 线段树经典应用 首先暴力$f[i][j]$表示考虑前i位分成j段的最大值 转移$f[k][j-1]+cost(k+1,i)$枚举k转移 不同数的经典套路就是从它到它前驱这一段 于是维护每个数前驱然后线段树区间+1区间查询最大值就可以了 阅读全文
posted @ 2018-12-11 08:08 尹吴潇 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题解: 这个题好像暴力+线段树就能过 就是对修改操作暴力,线段树维护查询 为啥呢 因为保证了数$<=1e4$,于是这样复杂度$n*1e4=1e9$ 那么特殊数只有30个 又因为操作是只加不减的,所以每个点最多只有30次修改成特殊数 然后我的做法是建立主席树然后对每个数去二分这30次的位置 注意主席树 阅读全文
posted @ 2018-12-11 07:51 尹吴潇 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题解: 比较水,只有60种颜色 因为是子树,直接可以连续的维护 考虑状压,然后线段树维护or值,支持区间修改 阅读全文
posted @ 2018-12-10 22:02 尹吴潇 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题解: 这个题目比较套路 看上去比较难入手 像这一类的题目可以考虑一下前驱后继 于是我们维护每个点向前第k个颜色相同的是什么位置 然后会发现问题等价于查询一段区间内$<l$的数目的个数 主席树维护就可以了 另外如果不强制在线,莫队可以维护 如果强制在线,考虑分块 我们维护$l-r$块内$<k$的元素 阅读全文
posted @ 2018-12-10 15:15 尹吴潇 阅读(1099) 评论(0) 推荐(0) 编辑
摘要: 题解: 水题 两种做法: 1.我的 我们假设$xi>xj$ 那么拆开绝对值 $$xi-w[i]>x[j]+w[j]$$ 由于$w[i]>0$,所以$x[i]+w[i]>x[j]+w[j]$ 然后我们只需要在线段树上查询一段的最大值然后再单点取max就行了 2.题解的做法 像这种题目比较容易想到用贪心 阅读全文
posted @ 2018-12-10 14:56 尹吴潇 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题解: 树的同构的判定 有根树从根开始进行树hash 先把儿子的f进行排序 $f[i]=\sum_{j=1}^{k} { f[j]*prime[j]} +num[i]$(我没有仔细想这样是不是树是唯一的。。。反正过了) 无根树先找到重心再作为根 因为重心最多只有两个,复杂度仍旧O(n) 代码: 阅读全文
posted @ 2018-12-10 11:31 尹吴潇 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题解: sdoi树点涂色 平衡树的操作 ntt处理65536 动态树维护同余方程的题解 阅读全文
posted @ 2018-12-09 22:57 尹吴潇 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题解: 思路挺简单 但这个set的应用好厉害啊。。 我们把它看成图,如果a存在一门比b大,那么a就可以打败b,a——>b连边 然后求强联通分量之后最后顶层的强联通分量就是能赢的 但是因为是要动态维护,所以你每次都tarjan就炸了 我们考虑用set维护 我们将比较运算符定义为只要存在元素a>b或者b 阅读全文
posted @ 2018-12-08 11:51 尹吴潇 阅读(114) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 18 下一页