03 2019 档案

摘要:"题目" 数位$dp$思博题啊 但是我更加思博啊 面对$10^{18}$的数据范围,我竟然只开了$19$的数据,而这是一道二进制数位$dp$啊 我们设$f[i][0/1][0/1][0/1]$表示进行到了第$i$位,不卡/卡$n$的上界,不卡/卡$m$的上界,不卡/卡$k$的下界,我们求出所有异或值 阅读全文
posted @ 2019-03-31 21:52 asuldb 阅读(299) 评论(0) 推荐(0) 编辑
摘要:"题目" 容斥加组合计数 显然答案是 $$\sum_{i=0}^n( 1)^i\binom{n}{i}f_{n i}$$ $f_i$表示至多有$i$个人没有拿到特产 考虑求$f$ 发现$m$种特产每一种是独立的,于是可以考虑对每一种特产分别计算 现在的问题转化成了把$a_i$个物品分给$i$个人,允 阅读全文
posted @ 2019-03-31 19:15 asuldb 阅读(112) 评论(0) 推荐(0) 编辑
摘要:"题目" 看到这个数据范围就发现我们需要一个$O(n^2)$的做法了,那大概率是$dp$了 看到恰好$k$个我们就知道这基本是个容斥了 首先解方程发现我们需要使得$a b$的恰好有$\frac{n+k}{2}$组 如果不整除我们直接输出$0$就好了 之后开始使用套路,直接广义容斥 $$ans=\su 阅读全文
posted @ 2019-03-31 19:06 asuldb 阅读(177) 评论(0) 推荐(0) 编辑
摘要:"权限题" 根据广义容斥的套路就很好做了 设$g_i$表示交集至少有$i$个元素,$f_i$表示交集恰好有$i$个元素 显然有 $$g_i=\sum_{j=i}^n\binom{j}{i}f_j$$ 二项式反演可得 $$f_i=\sum_{j=i}^n( 1)^{j i}\binom{j}{i}g_ 阅读全文
posted @ 2019-03-31 12:45 asuldb 阅读(272) 评论(0) 推荐(0) 编辑
摘要:"神仙题" 发现不会容斥,于是自闭 发现这个叫广义容斥,好神仙啊 我们先来设 $g_i$表示 至少 有$i$种颜色出现了恰好$S$次的方案数,$f_i$表示 恰好 有$i$种颜色出现了恰好$i$次的方案数 我们设$L=min(m,n/S)$,表示最多能有多少种颜色恰好出现$S$次 我们显然有 $$g 阅读全文
posted @ 2019-03-31 10:59 asuldb 阅读(154) 评论(0) 推荐(0) 编辑
摘要:"题目" 非常板子了 看到求什么最长的回文,我们就想到枚举回文中心的方法 首先对于这个回文串只包含在一个串内的情况,我们随便一搞就可以了,大概$Manacher$一下就没有了 对于那种扭动的回文串,我们枚举回文中心,求一下回文半径,我们发现其必须先在一个串内扩展一个最长回文半径的长度,再去另外一个串 阅读全文
posted @ 2019-03-30 19:26 asuldb 阅读(124) 评论(0) 推荐(0) 编辑
摘要:"题目" 只使用$sam$的做法真是太妙了 对于原串建立后缀自动机,之后将反串放上去匹配,发现我们会得到这样的情况 这里的$mx$是蓝色部分出现最靠后的位置 我们画的这是一个正串,我们的反串就是红色位置,和蓝色位置能产生匹配 于是我们把红色位置倒过来,就能和蓝色匹配 于是$S[l]=S[mx],S[ 阅读全文
posted @ 2019-03-30 07:55 asuldb 阅读(228) 评论(0) 推荐(0) 编辑
摘要:"题目" 成爷爷一眼秒,$tql!!!$ 多组询问,求 $$\sum_{i=0}^kC_{n}^i $$ 发现$k include include include include define re register define LL long long define max(a,b) ((a) 阅读全文
posted @ 2019-03-29 18:58 asuldb 阅读(267) 评论(0) 推荐(0) 编辑
摘要:"题目" 斜率优化思博题,不想写了 之后就一直$95$了,于是靠肮脏的打表 就是更新了一下凸壳上二分斜率的写法,非常清爽好写 就当是挂个板子了 cpp include include include include define re register define LL long long def 阅读全文
posted @ 2019-03-29 16:35 asuldb 阅读(203) 评论(0) 推荐(0) 编辑
摘要:"神仙题" 就贴一个$loj$的链接吧,因为也就只有$loj$能过 发现可怜的树状数组写反了,那么根据经验可怜求得其实就是后缀和 发现都是在二进制下进行的操作,于是那个减法和加法没有什么区别,我们可以看成是后缀$l 1$的和减掉后缀$r$的和 就是 $$\sum_{i=l 1}^na_i \sum_ 阅读全文
posted @ 2019-03-29 11:03 asuldb 阅读(186) 评论(0) 推荐(0) 编辑
摘要:"题目" 抄题解.jpg 当是用来复习$LCT$的了 发现一操作很具有灵性,把一个点到根的路径涂上一种新颜色,这里的新颜色竟然和之前的都不同,那么所有的颜色必然都会是一段深度连续的路径了 既然是暴力到根,那么我们就会发现这个和$lct$的$access$操作很像啊;而且每段颜色都是一段深度连续的路径 阅读全文
posted @ 2019-03-28 19:54 asuldb 阅读(129) 评论(0) 推荐(0) 编辑
摘要:"权限题" 哈哈哈看我$O(|S|log^2|S|)$干$2e6$ 发现如果不是动态询问就是一道板子题,我们直接对所有询问串建$AC$自动机,之后跑一跑就成子树数颜色了 但是现在总不能动态数颜色啊 但是我们还是可以离线,之后我们现在只需要数时间小于当前询问的颜色就好了 又是树上的问题我们考虑直接$d 阅读全文
posted @ 2019-03-28 16:17 asuldb 阅读(133) 评论(0) 推荐(0) 编辑
摘要:"题目" 第一问非常裸,就是一个动态加边的$dinic$,我们从$1$到$n$考虑每一个人的每一个志愿,每次把这个人这一志愿的所有边都连出来,跑最大流发现流量增加就说明这个志愿匹配上了,退出做下一个人;否则就做这个人的下一个志愿 在$dinic$的时候删掉没有用的边会让代码快很多 第二问看起来非常二 阅读全文
posted @ 2019-03-27 21:36 asuldb 阅读(152) 评论(0) 推荐(0) 编辑
摘要:"题目" 最小割的可行边和必须边 可行边$(u,v)$需要满足以下两个条件 1. 满流 1. 残量网络中不存在$u$到$v$的路径 这个挺好理解的呀,如果存在还存在路径的话那么这条边就不会是瓶颈了 必须边$(u,v)$需要满足的条件 1. 满流 1. 残量网络中$S$能到达$u$,$v$能到达$T$ 阅读全文
posted @ 2019-03-27 16:34 asuldb 阅读(165) 评论(0) 推荐(0) 编辑
摘要:"题目" 发现题目给了一张补图,求的是最大团 而且隐隐约约告诉我们这张补图是一个二分图 于是非常自然联想到 最大团等于补图最大独立集 最大独立集又等于总点数 最小点覆盖 最小点覆盖=最大匹配 使得最大团增加就需要使得最大匹配减小 于是我们终于读懂题目了,就是求二分图匹配的必须边 直接在残量网络里跑$ 阅读全文
posted @ 2019-03-27 16:01 asuldb 阅读(192) 评论(0) 推荐(0) 编辑
摘要:这道题还是非常好的 首先第一问可以让我们联想到某网络流二十四题里的一道题,发现建图方式应该和这道题差不多啊 所以首先跑一遍$dp$,求出$dp[i]$表示$i$位置结束的$LIS$长度,设最长的$LIS$长度为$M$ 我们考虑一下如果想要使得这个$M$减小要割掉一些点,显然我们割掉的是点,所以将每一 阅读全文
posted @ 2019-03-27 15:16 asuldb 阅读(181) 评论(0) 推荐(0) 编辑
摘要:"题目" 我就是个丝薄 如果要用$dp_i$表示凑出$i$的最小花费显然不可能的 之后大力猜想能凑出来的状态不会很多,我的暴力也告诉我不是很多,好像也确实不多的样子,大概$4e4$左右 但是我就这样思维僵化了,背包套路难道不是看到某一维特别大就把交换一下这一维和$dp$值吗 于是$dp_i$表示使用 阅读全文
posted @ 2019-03-27 13:56 asuldb 阅读(201) 评论(0) 推荐(0) 编辑
摘要:"题目" 好秒啊,真是一道神仙的点分治 于是我们来一个暴力的$O(nlog^2n)$的暴力统计吧 考虑计算每一个点作为快递中心时的答案 我们考虑在这个点成为分治重心时计算这个贡献 把这个贡献分成两部分 1. 分治块内部的点对,且不跨过分治重心,这个我们直接暴力统计就好了 1. 分治块外部,这个又分成 阅读全文
posted @ 2019-03-27 10:17 asuldb 阅读(135) 评论(0) 推荐(0) 编辑
摘要:"题目" 我们的神仙教练在考试里放了这道题,当时我非常惊讶啊 背包是$O(n^3)$的吧~~明明是带根号的好吧~~,那既然要优化的话 NTT!什么时候我们教练会在考试里放多项式了 模数$1e9+7$? ~~任意模数~~不存在的,我们开int128找一个大一点的$NTT$模数就可以了 还是说一下$NT 阅读全文
posted @ 2019-03-26 21:35 asuldb 阅读(233) 评论(0) 推荐(0) 编辑
摘要:"vjudge" 给定一棵边长都是$1$的树,求有多少条路径长度为质数 树上路径自然是点分治去搞,但是发现要求是长度为质数,总不能对每一个质数都判断一遍吧 自然是不行的,这个东西显然是一个卷积,我们合并的时候显然可以直接大力$NTT$ 但是需要注意的是我们访问子树的顺序必须是先访问深度小的子树,否则 阅读全文
posted @ 2019-03-26 11:13 asuldb 阅读(218) 评论(0) 推荐(0) 编辑
摘要:"题目" 刚开始想费用流的我真是思博 发现最终的答案只取决于最后到达的那一批人到达的时间,于是发觉这应该是一个最大流 显然我们需要把每一个太空站按照时间拆点,之后上一个时间向下一个时间连边,容量无限,之后对于航线我们就直接在不同时间连不同的边就好了 最后的答案就是我们拆出来的最大的时间 应该可以二分 阅读全文
posted @ 2019-03-26 09:32 asuldb 阅读(127) 评论(0) 推荐(0) 编辑
摘要:题目 这是一道神仙题 看到这样一个鬼畜的柿子 \[\sum_{i=1}^n\sum_{j=1}^n\varphi(a_i\times a_j)\times dis(i,j) \]又是树上距离又是\(\varphi\)的看起来根本就不知道怎么搞啊 首先需要知道一个这样的性质 \[\varphi(a\t 阅读全文
posted @ 2019-03-25 20:45 asuldb 阅读(244) 评论(0) 推荐(0) 编辑
摘要:"题目" 话说有没有跟我一样直接猜了一个最大值不会改变这样一个二乎乎的结论之后交上去保龄的呀 首先看到棋盘,选择相邻的格子,非常经典的黑白染色 显然那个二乎乎的结论是错的,随便就能$hack$了 于是我们二分这个最大值 如果当前二分出来的最大值是$mid$,$i+j$为奇数,起点连$mid a[i] 阅读全文
posted @ 2019-03-25 14:57 asuldb 阅读(188) 评论(0) 推荐(0) 编辑
摘要:"题目" 暴力$dp$好有道理啊 于是我们来个反演吧 考虑一个体积序列$\{v_1,v_2,...v_n\}$能凑成$w$的条件 显然是 $$v_1x_1+v_2x_2+...+v_nx_n\equiv w(mod\ P)$$ 根据贝祖定理,我们知道上面的同余方程有解的条件是 $$gcd(v_1,v 阅读全文
posted @ 2019-03-25 11:16 asuldb 阅读(180) 评论(0) 推荐(0) 编辑
摘要:"题目" 打$div2$的时候被这道题锤自闭了 确实是非常神仙的的一道题 我们发现不能和结尾的数互质,结尾的数也不会和前面的数互质,所以我们发现整个序列都是不互质的 那么我们可以考虑把这个关系抽象成一张拓扑图,每一个数$x$向其约数$k$连边,表示我们通过在末尾添加一个数可以使得整个序列的$gcd$ 阅读全文
posted @ 2019-03-25 07:18 asuldb 阅读(587) 评论(0) 推荐(0) 编辑
摘要:"题目" 先来考虑一下第一问,血量有$P$的概率减$1$ 由于我们最后需要求每一个人的期望血量,于是考虑维护出每个人处于不同血量时候的概率 一个简单$dp$即可 $$dp_{i,j}=dp_{i,j+1}P+dp_{i,j}\times (1 P)$$ $dp_{i,j}$表示第$i$个人血量为$j 阅读全文
posted @ 2019-03-24 20:48 asuldb 阅读(214) 评论(0) 推荐(0) 编辑
摘要:突然发现距离省选只有两周了,又突然发现自己如果打不好省选就要退役了 那就把剩下的两周当作最后两周吧 UPD on 2019.9.22 发现自己联赛之前变得更垃圾了 UPD on 2020.6.11 距离省选只有不到10天了。 状态很差,可能还不如csp之前。很有可能就要在这里停下了,csp前最后一天 阅读全文
posted @ 2019-03-22 19:49 asuldb 阅读(157) 评论(0) 推荐(0) 编辑
摘要:"题目" 略一观察发现我们要求的东西是虚树上的边权和乘上$2$ 但是增加和删除操作使得我们不能每次都建出一棵显式虚树来 考虑虚树的构建过程,发现这个边权和就是按照$dfs$序依次走过每一个点,最后再从最后一个点走回来,这样每一条边只会被经过两次 于是我们用$set$来维护$dfs$序就好了 代码 c 阅读全文
posted @ 2019-03-21 15:02 asuldb 阅读(178) 评论(0) 推荐(0) 编辑
摘要:"题目" 还纠结了一下是费用流还是最小割 最终还是决定让最小割去死吧 我们的问题就是让一个点的点权只被计算一次 考虑拆点 1. 将所有点拆成入点和出点,入点向出点连流量为$1$的边 1. 每一个出点往下连能到达的点,向入点连费用为该点点权容量为$0$的边,向出点连费用为$0$容量为$k 1$的边 这 阅读全文
posted @ 2019-03-21 11:14 asuldb 阅读(94) 评论(0) 推荐(0) 编辑
摘要:"题目" 发现$n$比较大,但是$k,p$都很小,考虑矩乘使得复杂度倾斜一下 发现所有车的最大间隔都是$p$,还保证$k include include include define re register const int M=1024; const int mod=30031; struct 阅读全文
posted @ 2019-03-21 10:21 asuldb 阅读(155) 评论(0) 推荐(0) 编辑
摘要:"题目" 我还会写$SA$和 $ST$表真是令人感动 发现这是一个思博题 我们开一个指针,标记一下当前合法的字典序最小的后缀排名在哪里,刚开始自然是$1$ 我们发现这个后缀不能为我们提供$i$的长度我们就右移这个指针 之后我们二分+$St$表找到从这个后缀往右扩展的最大距离,查一下这里面最小的$sa 阅读全文
posted @ 2019-03-20 09:07 asuldb 阅读(125) 评论(0) 推荐(0) 编辑
摘要:"题目" 场面过度玄学,容易引起不适 我们发现我们要求的这个期望由分母和分子两部分构成 易发现 $$Ans=\frac{\sum_{i=1}^nS_2(n,i)\times i\times i!}{\sum_{i=1}^nS_2(n,i)\times i!}$$ 结合$NTT$求斯特林数卷积我们就能 阅读全文
posted @ 2019-03-19 19:44 asuldb 阅读(250) 评论(0) 推荐(0) 编辑
摘要:"题目" 发现要求配对的条件是这样 $$a_j|a_i,\frac{a_i}{a_j}=p_1$$ 我们考虑一下再来一个$a_k$,满足 $$a_k|a_j,\frac{a_j}{a_k}=p_2$$ 显然$a_i=a_jp_1,a_j=a_kp_2$,于是$a_i=p_1p_2\times a_k 阅读全文
posted @ 2019-03-19 16:44 asuldb 阅读(235) 评论(0) 推荐(0) 编辑
摘要:"题目" 也是可以用$SAM$来做的 我们发现要求原串不相交,那么就要求在差分序列里不相交并且不相邻 考虑一下$SAM$,暴力做法自然是对每一个节点统计其所有$endpos$的影响 既然这样我们为什么不直接启发式合并加线段树合并分类讨论一下呢 ~~于是可休闲了~~ 我们考虑往一个节点里插入一个新的$ 阅读全文
posted @ 2019-03-19 10:54 asuldb 阅读(204) 评论(0) 推荐(0) 编辑
摘要:"题目" 我也不知道我建了个什么图,之后随便跑了跑就过了 发现要求形成一个环,改边的方向需要$1$的代价 根据网络流的套路开始拆点 1. 每个点拆成两个点,$S$向入点连流量为$1$的边,出点向$T$连流量为$1$的边 1. 对于那些方向改变的边,费用都是$1$,否则是$0$ 这样为什么是对的呢,考 阅读全文
posted @ 2019-03-18 20:49 asuldb 阅读(138) 评论(0) 推荐(0) 编辑
摘要:"题目" 神仙题,神仙题 这是一道很适合盯着发呆的题目 看到这个规律 $$ f(a,b)=f(b,a) $$ $$ b\times f(a,a+b)=(a+b)\times f(a,b) $$ 这也没什么规律啊 于是自闭了 盯着发呆一个小时之后发现,这个$f(a,a+b)$和$f(a,b)$有关系 阅读全文
posted @ 2019-03-18 18:55 asuldb 阅读(206) 评论(0) 推荐(0) 编辑
摘要:"题目" 我们发现我们得正难则反 还是设$f_i$表示长度为$i$的序列个数 考虑容斥 $$f_i=i! \sum_{j=1}^{i 1}f_j(i j)!$$ $i!$显然是总方案数,我们减掉不合法的方案数,显然$1$到$j$这些数强行合法,之后$j+1$到$i$在后面自由排列,由于在$j$后面这 阅读全文
posted @ 2019-03-18 10:41 asuldb 阅读(184) 评论(0) 推荐(0) 编辑
摘要:"题目" 一句话题意,无向连通图计数 技不如人,甘拜下风 设$f_i$表示$i$个节点构成的无向连通图数量 之后。。。之后就不会了 ~~于是抄题解~~ 考虑容斥 $$f_i=t_i \sum_{j=1}^{i 1}\binom{i 1}{j 1}f_jt_{i j}$$ $t_i$表示$i$个节点构 阅读全文
posted @ 2019-03-18 08:47 asuldb 阅读(214) 评论(0) 推荐(0) 编辑
摘要:"题目" 首先让其余所有边都减$1$和让自己加$1$没什么区别 考虑$kruskal$的过程 首先边权大于这条边的是不用考虑的 考虑把那些边权比这条边小的调节到比这条边大,这样就相当于在生成树上去掉了这条边(被这条边取代了) 至于调大到多少自然是使得边权恰好大$1$ 让这条边必然存在就一定得让这条边 阅读全文
posted @ 2019-03-17 20:57 asuldb 阅读(154) 评论(0) 推荐(0) 编辑
摘要:"题目" 生成函数就是好,什么题目都能搞 先来列一个暴力$dp$,$dp_i$表示形成$i$点权的二叉树的方案数 我们可以直接列出方程 $$ dp_i=\sum_{k=1}^n\sum_{j=0}^{i c_k}dp_jdp_{i c_k j} $$ 边界条件$dp_0=1$ 发现里面类似卷积,于是 阅读全文
posted @ 2019-03-17 13:01 asuldb 阅读(129) 评论(0) 推荐(0) 编辑
摘要:[权限题][https://www.lydsy.com/JudgeOnline/status.php?problem_id=4712&jresult=4] 这道动态$dp$终于不是独立集/覆盖集了 我们来看看暴力转移 设$dp_x$表示把$x$子树内部全部切断的最小花费 显然有 $$ dp_x=mi 阅读全文
posted @ 2019-03-16 21:42 asuldb 阅读(182) 评论(0) 推荐(0) 编辑
摘要:"题目" 求 $$\sum_{i=0}^n\sum_{j=0}^iS_2(i,j)2^jj!$$ $S_2(i,j)$为第二类斯特林数 这什么神仙操作,这种东西能求? 慢慢来做 首先想到二类斯特林的组合意义,就是把$i$个球放到$j$个盒子里且不允许有空 我们容斥一波,发现 $$S_2(i,j)=\ 阅读全文
posted @ 2019-03-16 20:53 asuldb 阅读(142) 评论(0) 推荐(0) 编辑
摘要:"题目" 强制选点我们可以把那个点权搞成$ inf$,强制不选我们搞成$inf$,之后就真的成为动态$dp$的板子题了 由于不想像板子那样再写一个最大独立集的方程,之后利用最小点覆盖=总点权 最大独立集的做法,而直接写了一个最小点覆盖的方程,所以写出了很多锅 1. 矩阵里存放相同意义变量的位置可能真 阅读全文
posted @ 2019-03-16 19:20 asuldb 阅读(197) 评论(0) 推荐(0) 编辑
摘要:"题目" 尽管知道这个东西应该不会考了,但是还是学一学吧 ~~哎要是去年noip之前学该多好~~ 动态$dp$就是允许修改的一个$dp$,比如这道题,我们都知道这是一个树上最大点权独立集 众所周知方程长这个样子 $$dp_{u,0}=\sum_{(u,v)\in e}min(dp_{v,0},dp_ 阅读全文
posted @ 2019-03-16 19:10 asuldb 阅读(141) 评论(0) 推荐(0) 编辑
摘要:看到成爷爷写了一篇就跟风写一篇吧,慢慢更 一些前置技能 泰勒展开 对于一个不是很好表示的函数$f(x)$,我们可以用一个多项式函数来拟合它,用神奇的泰勒展开即可 $$f(x)=f(x_0)+\frac{f'(x_0)}{1!}(x x_0)+\frac{f''(x_0)}{2!}(x x_0)^2+ 阅读全文
posted @ 2019-03-16 17:29 asuldb 阅读(332) 评论(0) 推荐(0) 编辑
摘要:"题目" 我的树状数组怎么那么慢啊 就是一道水题,我们考虑一下对于一个区间$[l,r]$什么样的数能被计算 显然需要对于一个$j$,需要满足$jr$,或者$j r$且$lst_j include include include define re register define lb(i) ((i) 阅读全文
posted @ 2019-03-16 17:03 asuldb 阅读(121) 评论(0) 推荐(0) 编辑
摘要:"题目" 发现询问是针对整个区间,也就是说位置什么用都没有 发现我们需要构造出$s$个长度为$c$的数列,每个数只能在一个数列中出现一次,且一个数最多的使用次数是其大小 对于那些大于等于$s$的数,我们让这些数在每一个数列里都出现就好了,如果这样的数有$val$个,相当于我们要构造的数列的长度变成了 阅读全文
posted @ 2019-03-16 08:55 asuldb 阅读(390) 评论(0) 推荐(0) 编辑
摘要:"题目" 这不线段树合并板子题吗 cpp include include include include define LL long long define re register define maxn 100005 define inf 9999999999 inline int read() 阅读全文
posted @ 2019-03-15 19:38 asuldb 阅读(711) 评论(0) 推荐(0) 编辑
摘要:"题目" 设我们要求的是$g_n$ 我们强行定义$g_0=1$ 于是就有 $$g_i=\sum_{j=0}^{i 1}fib_{j}g_{i j}$$ 就是新枚举一个$j$,通过一个分配率和在原来的答案上更进一步 于是这个数列的生成函数就是 $$\begin{aligned} G(x)=&\sum_ 阅读全文
posted @ 2019-03-15 08:51 asuldb 阅读(250) 评论(0) 推荐(0) 编辑
摘要:不得不说这个东西真是妙啊 遭到了降智打击 生成函数又叫做母函数,主要用于解决一些组合数学问题 对于一个数列$\{f_0,f_1,f_2,...,f_n\}$ 我们定义其生成函数为 $$F(x)=f_0+f_1x+f_2x^2+...+f_nx^n$$ 也就是 $$F(x)=\sum_{i=0}^nf 阅读全文
posted @ 2019-03-14 21:02 asuldb 阅读(459) 评论(3) 推荐(1) 编辑
摘要:"题目" 真是一道好题 首先根据一个非常显然的贪心,如果给出了一个串$S$,我们如何算最小操作次数呢 非常简单,我们直接把$S$拉到$T$的$SAM$上去跑,如果跑不动了就停下来,重新回到$1$继续跑 于是我们建出一个$SAM$之后可以写一个这样的暴力,设$d[i][j][k]$表示从$i$点到$j 阅读全文
posted @ 2019-03-13 21:00 asuldb 阅读(283) 评论(0) 推荐(0) 编辑
摘要:"题目" 显然二分图没有奇环 于是考虑使用并查集维护一下看看是否存在奇环 我们可以考虑加权并查集,维护出$x$到$fa_x$的实际距离 由于我们只需要考虑奇偶性,于是我们处理出到根的路径异或一下就好了 之后是动态删边的问题,我们可以考虑线段树分治 于是我们需要在线段树分治的时候维护一个并查集,还需要 阅读全文
posted @ 2019-03-13 15:08 asuldb 阅读(117) 评论(0) 推荐(0) 编辑
摘要:"题目" 就像$a+b$不可能是$a+b$一样,费用流也不可能是费用流 这也不影响这是一个假博弈 发现Bob可以知道Alice的策略,于是对于Alice来说,就是选择一种策略来 最小化最大费用 ,这暗示我们二分 我们再来考虑一下Bob的策略,非常显然我们需要把费用放在流量最大的一条边上 于是我们二分 阅读全文
posted @ 2019-03-12 21:20 asuldb 阅读(102) 评论(0) 推荐(0) 编辑
摘要:"题目" 二维线段树板子题啊 但是惊讶的发现我不会打标记 毕竟内层是线段树不能$pushup$也不能$pushdown$ 于是考虑一下标记永久化 其实非常显然$mx_i$表示区间最大值,$tag_i$表示标记 我们修改的时候一路修改最大值,最后打标记 查询的时候一路查$tag_i$,最后访问一下$m 阅读全文
posted @ 2019-03-12 17:46 asuldb 阅读(188) 评论(0) 推荐(0) 编辑
摘要:"题目" 首先是开闭区间的处理,我们把$1.5$这种数加进来,用$[1.5,6]$来表示$(2,6]$ 根据离散数学的基本知识,尝试把五个操作转化成人话 1. 把$[x,y]$变成$1$ 1. 把$[0,x 1]$和$[y+1,inf]$变成$0$ 1. 把$[x,y]$变成$0$ 1. 把$[x, 阅读全文
posted @ 2019-03-12 17:38 asuldb 阅读(146) 评论(0) 推荐(0) 编辑
摘要:"权限题" 线段树分治加线性基 首先这个题要求删除线性基肯定是没法处理的 于是我们套上一个线段树分治 线段树分治就是一种能够避免删除的神仙操作 我们发现询问是对一个时间的单点询问,而每一个数存在的时间却是一个区间 我们求出来每个数的存在区间,每一个区间对应在线段树上并不会超过$logn$段 我们就把 阅读全文
posted @ 2019-03-12 17:30 asuldb 阅读(168) 评论(0) 推荐(0) 编辑
摘要:"题目" 郑州讲过的题了 发现这是一个二叉搜索树,给出的还是中序遍历,我们很自然的想到我们需要可以用一个$f "i][j][k" $来表示区间$[i,j]$能不能形成以$k$为根的二叉搜索树 就是区间的$dp$的套路我们还需要枚举一下树根,复杂度高达$O(n^5)$ 很不可行啊 换一个思路,我们用$ 阅读全文
posted @ 2019-03-10 15:19 asuldb 阅读(240) 评论(0) 推荐(1) 编辑
摘要:"题解" 垃圾luogu数据毁我青春 不知道为什么bz一遍过了luogu上狂wa不停 这题就是让你求一个 $$\sum_{i=0}^n\sum_{j=0}^m[(i,j)\notin Tree]\binom{up}{k}\binom{down}{k}\binom{L}{k}\binom{R}{k}$ 阅读全文
posted @ 2019-03-08 16:21 asuldb 阅读(151) 评论(0) 推荐(0) 编辑
摘要:"题目" 发现我们需要最大化最小值,基本是二分了 那么我们二分出来一个值我们将小于等于这个值的都删去,现在的问题变成了如何用$n+1$条路径覆盖这张图 这不最小路径覆盖吗 于是我就忘了最小路径覆盖怎么搞了 在慎老师的教育下我终于知道了最小路径覆盖应该先将每个点拆成两个点,放在二分图的左右两边,对于原 阅读全文
posted @ 2019-03-07 21:58 asuldb 阅读(147) 评论(0) 推荐(0) 编辑
摘要:"题目" 我们发现我们要求的是一个最大团问题,众所周知这是一个$NP$难问题,除了爆搜没有什么别的方法,但是这道题我们可以根据图的特殊性质入手 我们如果把$B$国的人分成奇数和偶数两类,就会发现奇数和偶数这两部分都是一个团 而且这两部分之间有一些连边 很像二分图是吧,就只是左右两边的点从两两没边变成 阅读全文
posted @ 2019-03-07 21:12 asuldb 阅读(202) 评论(0) 推荐(0) 编辑
摘要:"题目" 癌我竟然会做 发现我们要求的是一个最大独立集问题 发现一个格子和能攻击到的格子的奇偶性和它都不同,于是我们就可以按照$i+j$的奇偶性把整张图分成两个部分 两个部分之间没有连边 于是二分图最大独立集=总点数 最小点覆盖 最小点覆盖=最大匹配 代码 cpp include include i 阅读全文
posted @ 2019-03-07 13:56 asuldb 阅读(165) 评论(0) 推荐(0) 编辑
摘要:"题目" 怎么没人用$O(klogn)$的插值啊 首先 $$\sum_{i=1}^ni^{m+1}$$ 是一个以$n$为自变量的$m+2$次多项式,我们需要$m+3$个点才能确定这个多项式 拿出拉格朗日插值的柿子 $$f(x)=\sum_{i=1}^{m+3}y_i\prod_{i\ne j}\fr 阅读全文
posted @ 2019-03-06 21:09 asuldb 阅读(173) 评论(0) 推荐(0) 编辑
摘要:"题目" 坐标$/2$这种神奇的性质肯定在暗示什么 基本是完全二叉树了 又发现$P_{i} include include include define LL long long define re register define maxn 1000005 inline int read() { i 阅读全文
posted @ 2019-03-06 15:07 asuldb 阅读(186) 评论(0) 推荐(0) 编辑
摘要:"题目" 这题目名字怎么这么长 zky学长讲过的题 非常显然,就是重排之后能形成回文串的话,最多只能有一个字母出现奇数次 又发现这个字符集大小只有$22$,于是套路的使用状压,把每一条边转化成一个二进制数,求一下根路径前缀异或和 由于异或的性质,我们想得到路径$(x,y)$的异或值,只需要$pre_ 阅读全文
posted @ 2019-03-04 21:54 asuldb 阅读(135) 评论(0) 推荐(0) 编辑
摘要:"题目" $dsu\ on\ tree$的板子题了 $dsu\ on\ tree$本质上一种优秀通过轻重链剖分优化到$O(nlogn)$的暴力 一般用来解决没有修改的允许离线的子树查询问题 首先先来处理出每一个节点的重儿子 接下来按照如下的顺序统计 1. 递归处理当前节点的所有轻儿子 1. 递归处理 阅读全文
posted @ 2019-03-04 21:41 asuldb 阅读(262) 评论(0) 推荐(0) 编辑
摘要:"题目" 考虑一下把$0$看成$ 1$,那么就是找到一条边权和为$0$的路径,且这条路径可以被分成两段,边权和都是$0$ 没有第二个限制就是点分裸题了 ~~其实有了第二个限制还是点分裸题~~ 考虑那个断点肯定会存在于当前分治重心的某一边,或者直接在分治重心上,我们在求每个点到分治重心的距离的时候判断 阅读全文
posted @ 2019-03-04 15:15 asuldb 阅读(175) 评论(0) 推荐(0) 编辑
摘要:"题目" 感觉这种题好套路啊,怎么又是这个做法 癌不过怎么没有人和我一样些写套路做法,那干脆来写个题解吧 我们考虑枚举区间的右端点,这样我们只需要考虑从$1$到$i$的最大区间就好了 由于我们选择了这个位置作为区间的右端点,首先产生的贡献是这个电影的价值,但我们上一次看得这个电影就不能产生贡献了,而 阅读全文
posted @ 2019-03-03 20:05 asuldb 阅读(139) 评论(0) 推荐(0) 编辑
摘要:"只有学校里的电脑才能看的题目" 昊哥从牛客搬的,懒得找原题了 题意就是多组询问,每次询问一条树上路径,将这条路径上的点拿下来做$0/1$背包,求使得点权和为$K$的倍数的方案有几种 $n include include include include define max(a,b) ((a) (b 阅读全文
posted @ 2019-03-03 15:57 asuldb 阅读(137) 评论(1) 推荐(0) 编辑
摘要:"题目" 曾经我觉得这道题好难啊,同余类最短路好难啊 其实很简单的 我们找到所有系数中最小的那一个$mx$ 让所有运算都在$mod\ mx$的意义下进行 我们能得到的数就是$k\times mx+p$,当然反映在运算结果上我们就只能看到$p$ 我们发现我们能够凑出$k\times mx+p$就能凑出 阅读全文
posted @ 2019-03-02 21:28 asuldb 阅读(130) 评论(0) 推荐(0) 编辑
摘要:"题目" 这题好傻啊 就是按照题目说的先跑一遍最短路,之后建出一张最短路$DAG$在上面拆点最大流就没了 代码 cpp include include include include include define max(a,b) ((a) (b)?(a):(b)) define min(a,b) 阅读全文
posted @ 2019-03-01 16:24 asuldb 阅读(168) 评论(0) 推荐(0) 编辑
摘要:"题目" 好神仙的题目啊啊啊啊啊 没什么思路,发现了题解里的一句$(i,i+1,0,inf a_i)$就有点懂了 我们可以考虑一下我们如果就按照上面的方式来连边我们的最大流是什么 显然是$inf max(a_i)$ 这显然取决于最小的那一条边的流量 但是我们如果想让最后的流量为$inf$,就需要额外 阅读全文
posted @ 2019-03-01 14:45 asuldb 阅读(127) 评论(0) 推荐(0) 编辑