摘要: 这是一道概率+树形$dp$ 首先我们看到这里每一个的贡献都是1,所以我们要求的 期望就是概率 求得其实就是这个 $$\sum_{i=1}^nP_i$$ $P_i$为节点$i$通电的概率 显然节点$i$通电有三种可能 1. 它自己来电了 1. 它的子树里有一个点来电了传了过来 1. 它的子树外面有一个 阅读全文
posted @ 2019-01-01 21:50 asuldb 阅读(177) 评论(0) 推荐(0)
摘要: 发现自己的离散化姿势一直有问题 今天终于掌握了正确的姿势 ~~虽然这并不能阻挡我noip退役爆零的历史进程~~ 还是先来看看离散化怎么写吧,我以前都是这么写的 这是使用$set+map$的离散化,但是显然巨大的常数是极大的劣势 正确的操作应该是这个样子 cpp std::sort(a+1,a+n+1 阅读全文
posted @ 2019-01-01 21:50 asuldb 阅读(93) 评论(0) 推荐(0)
摘要: 我太sb啦 合并的时候又漏了,又漏了,又漏了 ~~我个sb~~ 这是个板子题,并不知道为什么SHOI2015会考这么板子的题,但是我又sb了,又sb了,又sb了,又没有1A 显然我是凉了 这道题有三个操作 1. 区间清零 1. 将一个区间清零,之后补到另一个区间去,但是有可能补不满 1. 询问一个区 阅读全文
posted @ 2019-01-01 21:50 asuldb 阅读(205) 评论(0) 推荐(0)
摘要: 我在有0环的图里跑了最短路计数 ~~我可能已经是个废物啦~~ 很早之前就想写这道题啦,但是太菜了发现自己不会,今天终于写啦 首先我们建图的时候建出一个正图还有一个反图,我们对着这两个图分别跑两次最短路,求出$1$到所有点的最短路,以及所有点到$n$的最短路 如果不考虑无解的情况,我们现在就可以大力记 阅读全文
posted @ 2019-01-01 21:49 asuldb 阅读(129) 评论(0) 推荐(0)
摘要: lx让做的题,其实很简单,难度评到紫令人吃惊 首先读进来$n,m$先$++$,之后就是一个格点数为$n m$的矩阵了 我们直接求很那做,补集转化一下,我们容斥来做 首先所有的情况自然是$C_{n m}^3$了 再算出不合法的情况 之后有$m$列,三个点在同一列上的方案数自然是$m C_n^3$ 有$ 阅读全文
posted @ 2019-01-01 21:49 asuldb 阅读(165) 评论(0) 推荐(0)
摘要: 就是运用$Lucas$推一个柿子 首先是前置芝士$Lucas$定理 $$C_{n}^{m}\%p=C_{n/p}^{m/p} C_{n\%p}^{m\%p}\%p$$ 至于证明 ~~我建议去问一下Lucas本人~~ 至于这道题,我们要求的是这个柿子 $$\sum_{i=0}^kC_{n}^i\%p$ 阅读全文
posted @ 2019-01-01 21:48 asuldb 阅读(198) 评论(0) 推荐(0)
摘要: 又抄了一篇题解 要凉了要凉了,开学了我还什么都不会 ~~文化课凉凉,NOIP还要面临爆零退役的历史进程~~ 这道题挺神的,期望+状态压缩 我们设$dp[i][S]$表示在第$i$天前,捡的宝物状态为$S$到第$K$天结束的期望收益是多少 于是我们的答案是$dp[1][0]$,也就是第一天前(就是没开 阅读全文
posted @ 2019-01-01 21:48 asuldb 阅读(177) 评论(0) 推荐(0)
摘要: 主席树板子了 首先看到这个暴力异常的题面,感觉做了这道题的会没命的 首先先考虑$b$在$a$子树内部的情况,这个样子的话我们需要知道子树内部所有深度小于等于$deep[a]+k$的点带来的贡献是是多少,由于这里的$a,b,c$都不能是同一个节点,所以这里的贡献就是子树大小减1,同时$b$也不能是$a 阅读全文
posted @ 2019-01-01 21:47 asuldb 阅读(151) 评论(0) 推荐(0)
摘要: 计数类dp还是要多写啊 看上去并没有什么思路,加上被题解里状压的标签迷惑了,于是就去看了一眼题解里设计的状态 之后就很好做了 首先先搞明白这道题的本质,就是对于任何一行任何一列炮的个数都不能超过$2$ 我们设$dp[i][j][k]$表示到了第$i$行 一共有$j$列的炮个数为$2$,有$k$列个数 阅读全文
posted @ 2019-01-01 21:47 asuldb 阅读(112) 评论(0) 推荐(0)
摘要: 我校最神的金牌爷安利给我的题 金牌爷告诉我这道题水爆了 ~~天啊,金牌爷竟然给我安利题目啦~~ 刚开始看着黑色的标签感觉并不是很可做,但是看到金牌爷~~脖子上闪闪发光的金牌~~真挚的眼神 我决定还是做一做 于是就开开心心的做了一道水题 我们设$dp[i][j]$表示进行到$i$次游戏,这次游戏使用的 阅读全文
posted @ 2019-01-01 21:47 asuldb 阅读(126) 评论(0) 推荐(0)
摘要: 我竟然又在写主席树 现在可是九月啦,我却还在写这种noip不可能考的算法 我觉得我真的要凉 题意很明确,就是给你一个序列,让从中选择$k$段连续的序列,长度必须大于等于$L$小于等于$R$,让这$k$段的和最大 本来认为这是一个非常精妙的$RMQ$问题,但是经过一番思考之后发现不会 智商不够,数据结 阅读全文
posted @ 2019-01-01 21:46 asuldb 阅读(130) 评论(0) 推荐(0)
摘要: 这是一篇有些赖皮的题解 (如果不赖皮的话,bzoj上也是能卡过去的) 首先由于我这个非常$sb$的方法复杂度高达$O(171^4)$,所以面对极限的$1e18$的数据实在是卡死了 但是这个时候可以骗一下 一般来说肯定会有一个点的数据到达了$1e18$,所以我们先将$1$到$1e18$之间的答案算出来 阅读全文
posted @ 2019-01-01 21:45 asuldb 阅读(183) 评论(0) 推荐(0)
摘要: 定义$sum(i)$表示$i$在二进制下$1$的个数 求$\prod_{i=1}^{n}sum(i)$ 暴力非常$sb$显然可以随便写,但是显然也是会$T$ 于是我们换个思路 我们设$tot$表示$sum(i)=x$的$i$有多少个,于是答案就是$x^{tot}$ 我们枚举$x$就行了,$x$显然不 阅读全文
posted @ 2019-01-01 21:45 asuldb 阅读(134) 评论(0) 推荐(0)
摘要: 发现好像写了一个洛谷上最快的分块 这道题曾经一度感觉非常不可做,因为$LCT$的标签以及没有什么思路的分块 但是自从$yy$出来一个错误的哈希冲突分块之后(修改的时候挂掉了),就发现这道题不就是我曾经的那个错误的思路吗 这种要往后不断的跳的题目,我们暴力往后跳的话肯定是会爆炸的,因为这样的复杂度完全 阅读全文
posted @ 2019-01-01 21:44 asuldb 阅读(118) 评论(0) 推荐(0)
摘要: 好水啊 但是我傻啊 我们设$dp[i][j]=\sum_{t=0}^{∞}\binom{ik}{j+tk}$ 根据组合数万年不变的递推式$\binom{n}{m}=\binom{n 1}{m 1}+\binom{n 1}{m}$ 我们有$dp[i][j]=dp[i 1][j]+dp[i 1][(j 阅读全文
posted @ 2019-01-01 21:44 asuldb 阅读(138) 评论(0) 推荐(0)
摘要: 非常巧妙的$dp$顺序 这道题如果按照最正常的顺序来$dp$的话,显然是没有办法做的,后效性太大了 所以我们可以巧妙的改变$dp$的顺序 我们注意到一个位置$(i,j)$要被打到的话就必须将其右上方的所有砖块都打掉,于是我们我们设$dp[i][j][k]$表示打到了$(i,j)$这个位置一共打了$k 阅读全文
posted @ 2019-01-01 21:44 asuldb 阅读(141) 评论(0) 推荐(0)
摘要: 挺妙的一道期望题 首先经过一番简单的思考就会发现对于线段树上的一个叶子节点$x$,深度为$deep[x]$,那么走到这个节点的概率就是$2^{deep[x]}$ 我们设$val[x]$表示叶节点$x$到根经过的所有节点的权值和为$val[x]$ 于是最后的答案就是 $$qwq \sum_{i=1}^ 阅读全文
posted @ 2019-01-01 21:43 asuldb 阅读(223) 评论(0) 推荐(0)
摘要: 树上的路径怎么能没有树剖 显然, 次小生成树和最小生成树只在一条边上有差距 ,于是我们就可以枚举这一条边,将所有边加入最小生成树,之后再来从这些并不是那么小的生成树中找到那个最小的 我们往最小生成树里加入一条边一定会在这条边的两个端点之间形成一个环, 为了让维持树的结构,我们要断开环上的一条边,而为 阅读全文
posted @ 2019-01-01 21:43 asuldb 阅读(147) 评论(0) 推荐(0)
摘要: 好像随便一卡就最优解了 malao告诉我这道题挺不错的,于是就去写了写 这两个操作很有灵性啊,感觉这么有特点的数大概是需要分块维护的吧 但是并没有什么区间查询,只是在最后输出整个序列 于是我们就直接用线段树维护 设置两个标记$tag[0],tag[1]$,分别表示对应区间的最小值和最大值 初始值我们 阅读全文
posted @ 2019-01-01 21:42 asuldb 阅读(259) 评论(0) 推荐(0)
摘要: 递推版的数位dp 绝对的暴力美学 我们设$dp[l][i][j][0/1][0/1][0/1]$表示到了第$l$位,这一位上选择的数是$i$,$l 1$位选择的数是$j$,第一个$0/1$代表$4$没有/有出现过,第二个$0/1$代表$8$没有/有出现过,第三个$0/1$代表连续三位没有/有出现过 阅读全文
posted @ 2019-01-01 21:42 asuldb 阅读(195) 评论(0) 推荐(0)
摘要: 巧妙思路题 有一个重要的思想就是把大于某一个数的数都变成$1$,小于这个数的都变成$0$,这个只有$0$和$1$的序列就很好处理了 由于我们只需要在最后求出一个位置上是什么数就可以了,所以我们没有必要去精确算出来这一位上是什么数 显然是可以二分的 我们二分出来一个答案,我们按照上述的方法处理序列,之 阅读全文
posted @ 2019-01-01 21:41 asuldb 阅读(162) 评论(0) 推荐(0)
摘要: 开始复习字符串了 第一步肯定得是$hash$ 首先理性分析一波不可能出现长度为奇数的反回文串,对称轴位置取反之后肯定和原来不相等了 我们可以枚举所有回文串的对称中心,之后我们发现这个样子是具有单调性de 于是我们就利用$hash$来判断 将原来的串取反之后在反转,判断在对称中心左右两边二分的长度是否 阅读全文
posted @ 2019-01-01 21:41 asuldb 阅读(199) 评论(0) 推荐(0)
摘要: 先把之前的思路记下来 月赛的时候看到这道题感觉还是很眼熟的,毕竟做过一道叫 "康娜的线段树" 跟这道题挺像的 但仅仅也是挺像而已 于是就发现不会了 首先先分析一下性质 显然到达某一个叶子节点的概率就是 $$\frac{sum_x}{sum_{root}}$$ 这是很显然的,因为我们是一路向下走,第一 阅读全文
posted @ 2019-01-01 21:41 asuldb 阅读(291) 评论(0) 推荐(0)
摘要: 这是一道贪心题 刚开始yy出来一个比较$sb$的贪心 之后发现它错了 首先这道题得先把题面翻译成人话 1. 如果存在一个单词是它的后缀,且当前没被填入,代价为$n n$; 1. 如果不存在一个单词是它的后缀,代价为$x$; 1. 如果存在一个单词是它的后缀,且已填入的是它后缀的单词中序号最大的为$y 阅读全文
posted @ 2019-01-01 21:40 asuldb 阅读(198) 评论(0) 推荐(0)
摘要: 这个复杂度能过真是令人惊讶 本来准备是打个暴力看看能水多少分的,但是就$A$了 那也就是说我用$50 2^{15} 26 15$的复杂度跑过了五组数据 真是玄学 首先字符串题目的套路就是我们需要存一个状态表示匹配到第几位 $n include include include define re re 阅读全文
posted @ 2019-01-01 21:39 asuldb 阅读(211) 评论(0) 推荐(0)
摘要: 各种瞎写 之后也不知道为什么就过了 刚看到这道题感觉确实是不会的,因为我贪心太差了$QAQ$ 之后就随便$yy$呗 发现首先我们得排一下序,以$t2$也就是建筑的损坏时间为第一关键字从小到大排序 这个还是比较好考虑的,我们得优先照顾一下那些在最开始就会损坏的建筑 那之后呢,好像我们现在可以做一个$d 阅读全文
posted @ 2019-01-01 21:39 asuldb 阅读(95) 评论(0) 推荐(0)
摘要: 我又来复习$kmp$了 其实这道题主要是一个矩阵乘法,但是$kmp$在其中也有着非常重要的作用 我们可以这样定义状态$dp[i][j]$表示文本串进行到了$i$位置,同时文本串在最后和模式串匹配了一共$j$位的方案数 于是答案就是$\sum_{i=0}^{m 1}dp[n][i]$ 之后我们想一下转 阅读全文
posted @ 2019-01-01 21:39 asuldb 阅读(172) 评论(0) 推荐(0)
摘要: 魏佬告诉我 跑得快不一定赢,不跌跟头才是成功 我决定把这句话作为魏佬的名言记下来 等以后人人捧着魏佬语录的时候,我可以告诉他们魏佬从小就开始向我传授人生经验 但我就是跑的快,而且非常快 成功卡到了b站最优解第五 突然这是我的最后一篇题解了 下午就初赛了,要退役了 好慌啊,好慌啊,好慌啊,我要退役了, 阅读全文
posted @ 2019-01-01 21:38 asuldb 阅读(149) 评论(0) 推荐(0)
摘要: 关于拓扑排序的反建图还是一个非常套路的东西 比如说 "[HNOI2015]菜肴制作" 我们希望使得某一个东西在拓扑序中出现的尽可能早,这个时候就可以建出一张反图来,使得这个东西在反图中的拓扑序尽量靠后,从而使得其出现的尽可能地早 这是为什么呢,比如说我们希望$1$出现的尽可能早,直接在正图上开一个小 阅读全文
posted @ 2019-01-01 21:38 asuldb 阅读(129) 评论(0) 推荐(0)
摘要: 这题好神啊 能够$1A$真是不可思议 首先看到要求的这个柿子$\sum_{i=l}^{r}deep[LCA(i,z)]$,而且$l$和$r$并不是来自与一棵子树或者一条链,而是编号连续的一段 所以肯定没有什么办法可以一下子求出来这么多的$LCA$的 得想个好的办法转化一下 于是就想往主席树上想 首先 阅读全文
posted @ 2019-01-01 21:37 asuldb 阅读(195) 评论(0) 推荐(0)
摘要: 非常好的一道题 树上的状压$dp$ 根据数据范围我们就能知道这是一道需要状压的题目 所以状态就是$dp[i][S]$表示在以$i$为根的子树里,选择的状态为$S$的最大收益 这个收益只是在子树内部的收益,我们往上转移的时候继续加 显然这个东西类似于一个树上背包,我们子树和根顺次合并就好了 由于这里的 阅读全文
posted @ 2019-01-01 21:36 asuldb 阅读(234) 评论(0) 推荐(0)
摘要: 好颓啊,我竟然来写了一道恶心的板子 旁边的魏佬嘲讽我,还用欺负我 嘤嘤嘤 那就不膜魏佬了 嘤嘤嘤 这是一道无聊的板子 看到这些操作,我们看到这些操作就知道我们需要维护的东西了 首先那个最长的连续的$1$,显然要维护一下左最长,右最长,还是区间最长 由于有非常恶心的取反操作,所以最长的连续$0$也需要 阅读全文
posted @ 2019-01-01 21:36 asuldb 阅读(152) 评论(0) 推荐(0)
摘要: 倍增什么的最慢了,常数太大了 我们可以上树剖啊 但是如果用树剖来查询树上两点之间的最小边权的话,可能只能在上一棵线段树? 那也太$naive$了,尽管倍增常数大,但是还是比两个$log$快的 那干脆重构树算了 我们直接建出$kruskal$重构树,之后我们可以在重构树上直接用树剖来查询$lca$,$ 阅读全文
posted @ 2019-01-01 21:35 asuldb 阅读(188) 评论(0) 推荐(0)
摘要: 趁魏佬去英语演讲了,赶快%%%%%%%%%%%%%%魏佬 基本上是照着魏佬的代码写的 这其实还是一个树上背包 我们用$dp[i][j][k]$表示在以$i$为根的子树里,我们修建$k$个伐木场,且$i$这个节点的树木我们运到$j$,也就是说在$j$上修建了一个伐木场,但是这个$j$并不包含在$k$中 阅读全文
posted @ 2019-01-01 21:35 asuldb 阅读(182) 评论(0) 推荐(0)
摘要: 这里是$sb$的$O(nm)$做法 上一篇题解里写的$O(nm)$做法并没有看懂,我真是好菜啊 这是一个用了斜率优化,但是复杂度仍然是$O(nm)$的做法 我们还是先写出简单的$dp$方程 $dp[i]$表示到达第$i$个点的时候的最大收益 于是就有 $$dp[i]=max(dp[j]+w[i] ( 阅读全文
posted @ 2019-01-01 20:00 asuldb 阅读(193) 评论(0) 推荐(0)
摘要: 魏佬怒嘲我只会做给定一棵树,输出有多少个点这种问题 不过我连这个也不会做 还算一道不错的树上数数题目 但是我一直不会数数 求树上所有的三元组$(u,v,t)$,满足$dis(u,v)=dis(u,t)=dis(v,t)$的个数 感觉好神仙啊,一眼不会的感觉 之后试着挖掘一下性质,发现只要我们需要找一 阅读全文
posted @ 2019-01-01 19:59 asuldb 阅读(205) 评论(0) 推荐(0)
摘要: 先写一个五十分的思路吧 首先这道题有一个弱化版 "[POI2008]STA Station" 相当于$k=1$,于是就是一个非常简单的树形$dp$的$up\ \ and\ \ down$思想 但是我们现在要求的是这个柿子了 $$\sum_{j=1}^ndis(i,j)^k$$ 感觉这个东西很组合数学 阅读全文
posted @ 2019-01-01 19:59 asuldb 阅读(142) 评论(0) 推荐(0)
摘要: 感觉自己的复杂度感人 大概是$O(p \pi(m)+p^3logn)$ 还是能过去的 我们看到这么大的数据范围还是应该先想一想暴力怎么写 显然我们可以直接暴力$dp$ 设$dp[i][j]$表示已经选择了$i$数,其中所有数的和$mod\ p$为$j$的方案数 显然方程是 $$f[i][j]=\su 阅读全文
posted @ 2019-01-01 19:59 asuldb 阅读(187) 评论(0) 推荐(0)
摘要: 智商不够数据结构来凑 常规操作就是将树上的一条路径$(s,t)$拆分成$(s,lca)$和$(lca,t)$来看 首先考虑一下上行路径 显然对于点$x$来说,只有$dep[s]=dep[x]+a[x]$且$lca$在$x$子树外面 好像非常难算的样子,我们考虑减掉$lca$在子树内部的情况 于是我们 阅读全文
posted @ 2019-01-01 19:58 asuldb 阅读(163) 评论(0) 推荐(0)
摘要: 这道题真是非常神仙 第一眼看到题面肯定能想到状态是$dp[i][j]$表示$i$这棵子树里染了$j$个黑点的最大值 最大值? 什么最大值,之后就会发现这个样子完全没有办法转移 所以我们考虑一下最后的答案长什么样子 突然感觉正着做不太好做,那就干脆反着做 如果没有分出黑点和白点,那么原来的答案,也就是 阅读全文
posted @ 2019-01-01 19:57 asuldb 阅读(135) 评论(0) 推荐(0)
摘要: 我好$sb$啊,把$ $打成$ include include define re register define max(a,b) ((a) (b)?(a):(b)) define maxn 50005 int dp[10005][33]; int S[maxn],F[maxn],L[maxn]; 阅读全文
posted @ 2019-01-01 19:57 asuldb 阅读(126) 评论(0) 推荐(0)
摘要: 披着期望外衣的数据结构? 非常毒瘤 我们要求得期望其实就是 $$\frac{\sum_{i=l}^{r}\sum_{j=i+1}^{r}dis(i,j)}{\binom{r l+1}{2}}$$ 好像非常难求的样子 我记得慎老师曾经教过我今天的那道线段期望的初赛题,其实这道题和那道初赛题非常的像 老 阅读全文
posted @ 2019-01-01 19:56 asuldb 阅读(114) 评论(0) 推荐(0)
摘要: 神仙题,抄题解 用$tp_i$表示$i$这个技能在$r$轮中被使用过的概率 于是最后的答案就是$\sum_{i=1}^nd_i tp_i$ 首先$tp_1=1 (1 p_1)^r$,也就是连续$r$轮都没有使用的概率 之后往下的$tp$靠$dp$来求 设$dp_{i,j}$表示在一共$r$轮里,前$ 阅读全文
posted @ 2019-01-01 19:56 asuldb 阅读(116) 评论(0) 推荐(0)
摘要: 这道题好神仙啊 我们推一下$SG$函数 显然答案就是$SG(n,m)$,$SG(n,m)=0$则先手败,否则先手胜 首先几个非常明显的地方$SG(n,0)=0$,这是显然的,上来就面对了必败状态 之后看看$SG$是如何转移的 $$SG(n,m)=mex\{SG(n m,m,SG(n 2 m,m).. 阅读全文
posted @ 2019-01-01 19:56 asuldb 阅读(143) 评论(0) 推荐(0)
摘要: 抄题解真开心 我真是越来越菜了 这是点双的板子题,于是求出所有点双,之后讨论 1. 如果点双里之有一个割点,那么如果这个割点炸了,这个点双就出不去了,于是我们得在这个点双内部除了这个割点位置放一个 1. 如果有两个割点,那么无论哪个割点炸了,这个点双都还有其他出口,于是不用放 1. 没有割点,那么可 阅读全文
posted @ 2019-01-01 19:55 asuldb 阅读(171) 评论(0) 推荐(0)
摘要: 这道题挺神仙的,毕竟这个异或是需要进位的 看到区间和我们很自然的就想到了前缀和 于是处理一下前缀和答案就变成了这个样子 $$⊕\sum_{i=1}^n\sum_{j=1}^{i}pre_i pre_{j 1}$$ 众所周知异或是应该按位处理的,但是这里是减法,所以还有进位需要处理 瞬间就感觉没有办法 阅读全文
posted @ 2019-01-01 19:54 asuldb 阅读(203) 评论(0) 推荐(0)
摘要: 好像很久之前就看过这道题,大概是刚学$LCA$的时候 之后当时肯定是不会的呀 现在发现这道题并不是非常难 首先我们发现这个灭绝的关系非常像一棵树,我们建出这个灭绝树求一个前缀和就可以啦 那么应该怎么建这棵树呢 我们一边拓扑排序一边建树,一个点的父亲应该是其所有食物节点的$lca$,于是一边拓扑排序一 阅读全文
posted @ 2019-01-01 19:54 asuldb 阅读(152) 评论(0) 推荐(0)
摘要: 我旁边有一个暴力的金牌爷整天欺负我嘤嘤嘤 关我电脑,关我浏览器,还钦定我学不会贪心 没错我就是学不会了 这道题还是非常妙的 我们发现这个土的数量实在是少的可怜,于是我们甚至可以对每一个单位的土都进行贪心 分成两种情况考虑 1. 当前的$a_ib_i$,我们需要去掉一些土,可能是将一些位置的土给拿过来 阅读全文
posted @ 2019-01-01 19:53 asuldb 阅读(233) 评论(0) 推荐(0)
摘要: 大水题一遍 过掉比较繁琐的拆点还是非常开心的 发现每一条边的边权可能不是$1$,但是边权的范围非常小,同时点数也非常小,只有$n include include define re register define maxn 105 define LL long long const int mod= 阅读全文
posted @ 2019-01-01 19:53 asuldb 阅读(190) 评论(0) 推荐(0)
摘要: 状压这个东西好像没有什么能优化的高级东西,像什么斜率优化,单调队列在状压的优化上都很少见 而最常见的状压优化就是预处理优化了, 这道题就预处理一下所有点对之间连线上的点,之后压成状态就能做到$O(2^n n^2)$ 这道题的状态就非常简单了,就是一个小学生状压$dp[i][S]$状态为$S$时最后一 阅读全文
posted @ 2019-01-01 19:52 asuldb 阅读(169) 评论(0) 推荐(0)
摘要: 这个题简直有毒,$O((a+b)^3logn)$的做法不卡常只比$O(2^n n)$多$10$分 看到$a$和$b$简直小的可怜,于是可以往矩阵上联想 发现这个柿子有些特殊,好像可以二项式定理搞一搞 于是$x^ay^b$可以写成$(n y)^ay^b$ 于是接下来就二项式定理好了 $$(n y)^a 阅读全文
posted @ 2019-01-01 19:52 asuldb 阅读(298) 评论(0) 推荐(0)
摘要: ——$shallwe$:这道题是$noipDay2T2$难度 好一个$Day2T2$难度啊,我觉得我可以退役了 平方和好像没有什么办法可以快速统计,于是考虑转化一下 我们可以将题意转化成这样 求有序对$(A,B)$,取法$A$可以和取法$B$得到相同的结果 也就是可以将题目抽象成一个人进行这个游戏两 阅读全文
posted @ 2019-01-01 19:51 asuldb 阅读(147) 评论(0) 推荐(0)
摘要: 感觉第一问就非常神仙,还有第二问怎么被我当成组合数学题来做了 首先是第一问 期望具有线性性,于是 深度平均值的期望等于深度和的期望值的平均 设$dp_x$表示具有$x$个叶子节点的树的深度和的期望值是多少 我们发现扩展一个叶子节点的实质将其变成两个深度原来大一的叶节点,所以对整个答案的贡献也就是这个 阅读全文
posted @ 2019-01-01 19:51 asuldb 阅读(247) 评论(0) 推荐(0)
摘要: 想贪心就是反复$hack$自己的过程 首先这很田忌赛马,但是又不完全一样 田忌赛马保证了所有马的实力不同,因此没有平局 田忌赛马的策略是当自己最强的马比不过对方最强的马的时候,就用自己最弱的马来自爆,在没有平局的情况下确实是最优的,因为我们总是要保证自己最强的马获得了胜利 但是这里有了平局 情况就变 阅读全文
posted @ 2019-01-01 19:50 asuldb 阅读(187) 评论(0) 推荐(0)
摘要: 非常无脑和码农的单调队列优化$dp$ 我们发现一个时间段内移动的情况是一样的,而时间段的数目又非常少,所以可以直接按照时间段来进行$dp$ 由于每一次$dp$的移动距离都是小于等于某一个固定值的,于是可以直接上单调队列优化 复杂度$O(nmk)$ 代码 cpp include include inc 阅读全文
posted @ 2019-01-01 19:50 asuldb 阅读(175) 评论(0) 推荐(0)
摘要: $kruskal$好题 $0$边的数量在某些情况下是可以无限制的调控的,前提是所有必须存在的边都在生成树里了 所以应该分别求出有哪些边是必须在生成树里的,我们可以先从大到小排序,求出有哪些$0$边必须在生成树里,之后再从小到大排序,求出那些$1$边必须在生成树里 之后剩下的边就可以随便放了,调控$0 阅读全文
posted @ 2019-01-01 19:49 asuldb 阅读(211) 评论(0) 推荐(0)
摘要: 这是我的第一个数据结构套数据结构 不是线段树套$Splay$,而是非常蛇皮的块状链表套树状数组 如果这里按照$\sqrt{n}$的大小来分块,那么就需要$n\sqrt{n}$的空间,可能开不下,于是我们按照$1000$分块,也就只会分出$100$个块,就能开下空间了 之后每一次查询的时候直接查询树状 阅读全文
posted @ 2019-01-01 19:49 asuldb 阅读(192) 评论(0) 推荐(0)
摘要: 江西竟然还有省选,而且还是可怜题,实在是有点可怕 这道题还是比较清真的,大概是最简单的可怜题? 首先看到最大值最小,就很容易想到了二分答案 对于一个二分出来的答案$mid$,去把原数列扫一遍就可以得到每一个位置至少要被覆盖几次 现在的问题变成了从$m$个区间里选择最少的区间,使得每一个位置都至少被覆 阅读全文
posted @ 2019-01-01 19:48 asuldb 阅读(186) 评论(0) 推荐(0)
摘要: 抄题解.jpg 完全完全不会啊,这道题简直太神了 不过抄题解可真开心 首先这道题目保证了每一个位置上的数都是不同的,那么就能得到第一种判断不合法的方式 如果两个区间的最小值一样,但是两个区间的交集为空集,那么就是不合法的 因为最小值肯定来自于同一个位置 之后就是第二种情况 上面那两个红色区间的最小值 阅读全文
posted @ 2019-01-01 19:47 asuldb 阅读(287) 评论(0) 推荐(0)
摘要: 靠瞎猜的数学题 首先我们先对这些向量进行一顿组合,会发现$(a,b)(a, b)$可以组合成$(2a,0)$,$(b, a)(b,a)$可以组合成$(2b,0)$,同理$(0,2a)$和$(0,2b)$自然也是可以组合成的 这个$0$很有用,可以只对一项考虑 所以如果这个时候有$2ax+2by=X$ 阅读全文
posted @ 2019-01-01 19:47 asuldb 阅读(173) 评论(0) 推荐(0)
摘要: 我好傻啊 "题目" 先来看看长度只能为$n$的情况 那么答案非常显然是$\binom{m+n 1}{n}$ 其中$m=R L+1$ 因为我们要构造一个非降序列,显然可能一个数会被选择多次,组合非常不好做,于是我们可以把每一个数的下标加上其对应的下标那么现在的值域范围就变成了$[L+1,R+n]$,从 阅读全文
posted @ 2019-01-01 19:46 asuldb 阅读(137) 评论(0) 推荐(0)
摘要: $APIO$的题就是非常难啊 首先看到$k=1$的情况,显然我们只需要找到一条直径把这条直径的两端连起来就好了 因为我们连这一条新边的实质是使得这一条链上的边不需要重复经过了,我们想让走的边尽量少,自然需要重复经过的尽量少,所以$k=1$找到直径就好了 答案就是$2\times(n 1) R+1$, 阅读全文
posted @ 2019-01-01 19:45 asuldb 阅读(168) 评论(0) 推荐(0)
摘要: 被锤爆了 被这个题搞得自闭了一上午,觉得自己没什么前途了 我又没有看出来这个题的一个非常重要的性质 我们填进去的数一定是单调不降的 首先如果填进去的数并不是单调不降的,那么填进去本身就会产生一些逆序对,感性理解好像是单调不降更优,这里还是严谨证明一下吧 考虑一下树状数组求逆序对的过程,显然就是求出每 阅读全文
posted @ 2019-01-01 19:45 asuldb 阅读(169) 评论(0) 推荐(0)
摘要: 这是一道我好像没写过的最小割 这道题如果没有那$m$条限制,我们完全可以贪心来做 但是硬要用网络流怎么办 可以转化为最小割模型 我们将源点$S$表示为耕地$A$,汇点$T$表示为耕地$B$,对于一个点$i$,源点向$i$连一条容量为$a_i$的边,$i$向汇点连一条容量为$b_i$的边 这样的话为了 阅读全文
posted @ 2019-01-01 19:44 asuldb 阅读(202) 评论(0) 推荐(0)
摘要: 可能我的状态比较鬼畜,应该没有人这么写 设$dp[i][j][k]$表示在第$i$行,放置油库的状态为$j$,实际上周围已经有油库或者本身有油库的状态为$k$的时候的最小花费 由于我们是按照行来$dp$的,所以这里的周围有油库只有三种可能 1. 上一行的这个位置有油库 1. 这个位置本身有油库 1. 阅读全文
posted @ 2019-01-01 19:44 asuldb 阅读(146) 评论(0) 推荐(0)
摘要: 这是一道大水题 首先这里只需要统计奇回文串,所以连插入特殊字符都不需要 之后我们跑一边$Manacher$的板子 搞一个后缀和数组$pre[i]$,先把所有的回文半径对应过去,之后求后缀和 之后我们倒着统计就好了,每次$ans\times=i^{pre[i]}$ 没了 代码 cpp include 阅读全文
posted @ 2019-01-01 19:43 asuldb 阅读(143) 评论(0) 推荐(0)
摘要: 发现好像都是化掉系数之后套上$ExCrt$的板子 这好像是一个真正的扩展扩展中国剩余定理 我们要处理的方程是这样的形式 \(c_ix\equiv b_i(mod\ a_i)\) 其中$c$用一个$std::multiset$处理就好了 好像不是普通$excrt$可以处理的形式啊 思考一下这个方程的本 阅读全文
posted @ 2019-01-01 19:43 asuldb 阅读(220) 评论(0) 推荐(0)
摘要: $CDQ$ 分治的神奇操作 这个问题跟偏序问题好像差的不小啊 但是就是可以转化过去 对于一个查询我们可以把它拆成四个,也就是用二维前缀和的方式来查询 我们发现其实前缀和的定义就是多少个点的横纵坐标都小于这个点 典型的偏序问题 于是直接上$cdq$了 代码 include include includ 阅读全文
posted @ 2019-01-01 19:42 asuldb 阅读(189) 评论(0) 推荐(0)
摘要: 可能还是非常板子的$Manacher$ 还是先跑一遍$Manacher$处理出来所有的回文半径$r[i]$ 由于我们要找的答案是两个回文串拼了起来,所以我们考虑枚举中间这个拼接处 所以我们要找到每一个$i$,其左边能够到达$i$的和右边能到达$i$的最大的回文半径 显然并不能直接使用$i+r[i]$ 阅读全文
posted @ 2019-01-01 19:42 asuldb 阅读(172) 评论(0) 推荐(0)
摘要: 这道题我们要求的是 $$\sum_{i=1}^N\sum_{j=1}^Mlcm(i,j)$$ 总所周知$lcm$的性质不如$gcd$优雅,但是唯一分解定理告诉我们$gcd(i,j)\times lcm(i,j)=i\times j$ 所以很容易的可以转化成这个柿子 $$\sum_{i=1}^N\su 阅读全文
posted @ 2019-01-01 19:41 asuldb 阅读(168) 评论(0) 推荐(0)
摘要: 设 $$f(n)=\sum_{i=1}^N\sum_{j=1}^M[(i,j)=n]$$ 我们的答案显然是 $$ans=\sum_{p\in prime}f(p)$$ 设 $$F(n)=\sum_{i=1}^N\sum_{j=1}^M[n|(i,j)]$$ 即有多少个数对的最大公约数是$n$的倍数 阅读全文
posted @ 2019-01-01 19:41 asuldb 阅读(128) 评论(0) 推荐(0)
摘要: 求 $$\sum_{i=1}^N\sum_{j=1}^M(i,j)^k$$ 多组询问,但是每次的$k$都是不变的 先是套路 $$f(n)=\sum_{i=1}^N\sum_{j=1}^M[(i,j)=n]$$ $$F(n)=\sum_{n|d}f(d)=\left \lfloor \frac{N}{ 阅读全文
posted @ 2019-01-01 19:40 asuldb 阅读(142) 评论(0) 推荐(0)
摘要: 慢慢化柿子吧 要求的是这个 $$\sum_{i=1}^N\sum_{j=1}^Md(ij)$$ 神奇的约数个数函数有一个这样的性质 $$d(ij)=\sum_{x|i}\sum_{y|j}[(x,y)=1]$$ 试着从唯一分解定理的角度去理解,将$i,j$分别分解质因数 显然$d(ij)$应该等于每 阅读全文
posted @ 2019-01-01 19:40 asuldb 阅读(142) 评论(0) 推荐(0)
摘要: 这道题是真的蛇皮 方案数要开$double$真的蛇皮 首先$dp$是非常容易看出来的 设$dp[i]$表示以$i$结尾的最长子序列 显然转移方程为 $$dp[i]=max(dp[j]+1)(j=h[i],v[j] =v[i])$$ 暴力转移是$O(n^2)$的 同时第二问我们还需要求一个概率 非常简 阅读全文
posted @ 2019-01-01 19:39 asuldb 阅读(163) 评论(0) 推荐(0)
摘要: 一度自闭 这道题一看就是最小割无疑 我们假设源点$S$表示看这个电影,汇点$T$表示不看这部电影 如果一个电影的价值为正,我们就从源点点连一条容量为$val$的边,表示割掉这个边也就是选择另一边也就是不看的代价为$val$ 如果为负,就向汇点连一条容量为$ 1 val$的边,表示选择另一边也就是看的 阅读全文
posted @ 2019-01-01 19:39 asuldb 阅读(171) 评论(0) 推荐(0)
摘要: 直接是最小割啊 设最终还和$S$相连表示睡觉,和$T$相连表示不睡觉 如果这个人想睡觉,那么就从源点向它连$1$的边,表示割掉这条边选择不睡觉的代价为1 如果这个人不想睡觉的话,就向汇点连一条$1$的边,表示选择睡觉的代价是$1$ 对于朋友关系的话之间连边就好了,可以使得这两个人在选择不同的时候必须 阅读全文
posted @ 2019-01-01 19:38 asuldb 阅读(158) 评论(0) 推荐(0)
摘要: 求 $$\sum_{i=1}^N\sum_{j=1}^Mσ(gcd(i,j))[σ(gcd(i,j)) include include include define re register define maxn 100005 define uint long long define LL long 阅读全文
posted @ 2019-01-01 19:38 asuldb 阅读(150) 评论(0) 推荐(0)
摘要: 首先发现这个插入的非常有特点,我们可以直接利用这个特殊的性质在$Trie$树上模拟指针的进退 之后得到了$Trie$树,先无脑建出$AC$机 之后考虑一下如何写暴力 最简单的暴力对于每一个询问直接在$AC$机上匹配之后跳$fail$,跳到多少次$fail$就代表出现了几次 显然这并不能通过 考虑一下 阅读全文
posted @ 2019-01-01 19:37 asuldb 阅读(162) 评论(0) 推荐(0)
摘要: 神仙的算法 我们如果要求 $$\sum_{i=1}^N\mu(i)$$ 应该怎么办 线筛显然是最常规的操作了,但是复杂度是$O(N)$的,如果大一点就挂了 这个时候就需要杜教筛这种神奇的东西了,可以在非线性时间内求积性函数的前缀和 比如说我们要求的是$f$吧 我们设一个函数$g$,同时还有$h=f\ 阅读全文
posted @ 2019-01-01 19:36 asuldb 阅读(144) 评论(0) 推荐(0)
摘要: 这道题自然是可以反演的 按照反演的套路我们先设出两个函数 $F(n)$表示从$[L,H]$中任选$N$个数的最大公约数是$n$或者$n$的倍数的情况数 $f(n)$表示从$[L,H]$中任选$N$个数的最大公约数是$n$的情况数 非常显然的是 $$F(n)=\sum_{n|d}f(d)$$ $$f( 阅读全文
posted @ 2019-01-01 19:36 asuldb 阅读(194) 评论(0) 推荐(0)
摘要: 先开始化柿子 求的是 $$Ans=\sum_{i=1}^N\sum_{j=1}^N i\times j \times gcd(i.j)$$ 还是先上套路 $$F(n)=\sum_{i=1}^N\sum_{j=1}^N[n|(i,j)]i\times j=(\frac{(\left \lfloor \ 阅读全文
posted @ 2019-01-01 19:35 asuldb 阅读(182) 评论(0) 推荐(0)
摘要: 首先这种匹配类问题一看就是网络流了 之后想一想怎么搞 发现题目的意思是使得 跳舞最少的男生跳的舞最多 很自然想到二分答案啊 现在转化成了一个判定性问题,能否使得所有人都跳上$k$只舞 由于喜欢和不喜欢的人放在一起并不好限制,于是只能拆点 于是我们把每个男生拆成三个点,其中一个点用来限制流量,一个点用 阅读全文
posted @ 2019-01-01 19:35 asuldb 阅读(173) 评论(0) 推荐(0)
摘要: $hash$+容斥 但是看到这个令人愉快的数据范围还是直接枚举子集吧 首先我们发现$6$这个东西简直是小的可怜,复杂度里肯定有$2^6$的 于是我们可以直接先枚举子集,把所有状态的对应相等的位置有多少对搞出来 因为一个答案在一个集合里被算过那么就一定在子集里被算过 之后我们倒着枚举子集,顺便容斥就好 阅读全文
posted @ 2019-01-01 19:34 asuldb 阅读(241) 评论(0) 推荐(0)
摘要: 这个题一看就是为后缀家族设计的 我们看到我们要求的这个柿子 $$\sum_{i=1}^n\sum_{j=i+1}^nT_i+T_j 2\times lcp(T_i,T_j)$$ 显然的是前面的那些东西是个定值 就是保证每一个长度都会被其他长度算到,也就是算到$n 1$次 于是把前面那些东西拿出来就是 阅读全文
posted @ 2019-01-01 19:33 asuldb 阅读(239) 评论(0) 推荐(0)
摘要: 压行真漂亮 首先这肯定是一个$dp$了 设$dp_i$表示$i$结尾的最长不下降子序列的长度 显然我们要找一个$j$来转移 也就是$dp_i=max(dp_j+1)$ 那么什么样的$j$满足条件呢 首先得是$j include include include define re register d 阅读全文
posted @ 2019-01-01 19:33 asuldb 阅读(179) 评论(0) 推荐(0)
摘要: 被$mhr$的暴力干翻了 这道题做法还是非常好想的 先做一遍差分,在每个串的某尾插入一个特殊字符,再将所有的串拼接在一起 现在的问题就转化为找到一个最长的公共子串使得其出现了$n$次,但是在一个串内出现多次出现只算一次 先考虑一下没有第二个限制的做法 那就是最简单的$SA$+二分了,就是扫一遍$he 阅读全文
posted @ 2019-01-01 19:32 asuldb 阅读(169) 评论(0) 推荐(0)
摘要: 被慎老师教育数位$dp$怎么写了 看来我数位$dp$的写法太落后了 这道题很显然就是一个$AC$自动机上的数位$dp$,按照套路 我们可以设计$dp[i][j][0/1]$表示匹配了$i$为在自动机上的$j$位置,不卡/卡上界 卡上界是一个很神奇的东西,代表这一位和之前的所有位都和上界相等 如果一个 阅读全文
posted @ 2019-01-01 19:31 asuldb 阅读(249) 评论(0) 推荐(0)
摘要: 码农题啊 上来先无脑一个$SA$的板子,求出$SA$和$het$数组 我们只需要从$sa[i]\in[a,b]$的所有$i$中找到一个$i$使得$sa[i]$和$rk[c]$之间的最小值最大就好了 但是还必须得满足$sa[i]+lcp 1 include include include define 阅读全文
posted @ 2019-01-01 19:30 asuldb 阅读(304) 评论(0) 推荐(0)
摘要: 可能是虚树板子题了 首先先把虚树建出来,但是这里和那道虚树的入门题不一样,这里所有的询问点都得在虚树里,所以不会存在那种直接不如栈的点 之后我们考虑一下这个三个要求的东西 第一个操作我们需要统计虚树上每一条边的贡献,即被多少个点对经过,根据乘法原理显然有\((t-sz[x])\times sz[x] 阅读全文
posted @ 2019-01-01 19:29 asuldb 阅读(168) 评论(0) 推荐(0)
摘要: 可能是最傻的做法了 暴力单调栈+$st$表 首先看到这道题就基本知道这是个$SA$了,先无脑敲上$SA$和求$height$的板子 之后尝试搞一下第一问 发现第一问就是求出满足$lcp(i,j) =k$的$(i,j)$有多少对 我们可以用一个暴力合并的单调栈来做 现在的问题转化为求出$height$ 阅读全文
posted @ 2019-01-01 19:29 asuldb 阅读(161) 评论(0) 推荐(0)
摘要: 求 $$Ans=\prod_{i=1}^N\prod_{j=1}^MFib[(i,j)]$$ 连乘的反演,其实并没有什么不一样 我们把套路柿子拿出来 $$F(n)=\sum_{i=1}^N\sum_{j=1}^M[n|(i,j)]=\left \lfloor \frac{N}{n} \right \ 阅读全文
posted @ 2019-01-01 19:28 asuldb 阅读(167) 评论(0) 推荐(0)
摘要: 这是一道$SA$的练手好题 建议做之前先去做一下 "2408" 之后你就肯定会做这道题了 首先上面那道题的答案就是 $$\sum_{i=1}^nn+1 sa[i] het[i]$$ 就是对于每一个后缀求出其能产生的子串,之后减掉和之前本质相同的子串 对于这个题,我们需要求出所有前缀的本质不同的子串个 阅读全文
posted @ 2019-01-01 19:28 asuldb 阅读(199) 评论(0) 推荐(0)
摘要: 莫队好题啊 莫队来做这个题的难点就是考虑如何在$O(1)$时间内由$[l,r]$转移到$[l,r+1]$ 显然加入$r+1$这个数之后会和之前所有的位置都产生一个区间,就是要去快速求出这个区间的和 我们先利用单调栈,扫出每个点往左往右都能扩展到哪里,在处理出一个数组$dp[i]$表示从$1$,$2$ 阅读全文
posted @ 2019-01-01 19:27 asuldb 阅读(160) 评论(0) 推荐(0)
摘要: 矩阵乘法+$AC$自动机 是道很不错的题了 首先是前六十分,就是一个$AC$自动机上的套路$dp$,设$dp[i][j]$表示匹配出的长度为$i$在自动机上位置为$j$的方案数,转移的话就枚举下一个单词选择哪个放到自动机上一波匹配就好了 后面$40$分强行变成了另外一道题,$L$变成了$1e8$,一 阅读全文
posted @ 2019-01-01 19:26 asuldb 阅读(348) 评论(0) 推荐(0)
摘要: $SA+SAM$ 第一问显然是一个$SAM$的经典问题,我们排完序之后直接使用一直往下找$n+1 sa[i] het[i]$就好了,找到$K$减不动了输出就好了 第二问是$SAM$的经典问题,我们在$SAM$上求出子树和跑一遍$dfs$就好了,每层都贪心的减$K$,减不动就停下来好了 代码 阅读全文
posted @ 2019-01-01 19:24 asuldb 阅读(199) 评论(0) 推荐(0)
摘要: 下凸壳切到的第一条直线是斜率比当前大的 上凸壳切到的第一条直线是比当前斜率小的 谨记这两句 好像是很神奇的一种DP优化 反正对于我来说就是打板子 先来从一道题入手吧 "[HNOI2008]玩具装箱TOY" 这是很多人的斜率优化入门题了 先来看看方程是什么 我们 设$dp[i]$表示将$1$到$i$的 阅读全文
posted @ 2019-01-01 19:22 asuldb 阅读(444) 评论(0) 推荐(0)
摘要: 我还什么都不会啊 字符串还是很重要的,省选肯定会考的吧 所以还是先写一下马拉车吧 $ $ $Manacher$ 是一个求最长回文子串的算法,复杂度$O(n)$ 核心原理就是利用回文串的性质 首先还是按照对称轴来找回文串,为了避免分类讨论回文串的奇偶性,所以可以在字符串之间先填充特殊字符 具体做法就是 阅读全文
posted @ 2019-01-01 19:19 asuldb 阅读(203) 评论(0) 推荐(0)
摘要: 先写点东西吧 比如说$\mu$函数的性质 首先$\mu(1)=1$ 之后对于一个数$n$,将$n$质因数分解,如果有任何一个质数的的指数超过$1$,那么$\mu(n)=0$ 否则记$n=\prod_{i=1}^kp_i$,则$\mu(n)=( 1)^k$ 于是就有了一条非常重要的性质 $$\sum_ 阅读全文
posted @ 2019-01-01 19:18 asuldb 阅读(230) 评论(0) 推荐(0)
摘要: $Day\ 1$ 非常的颓废 上午考了loli$\ \ oi$的最后一轮,$mhr$一个小时十五分钟怒切$260$分,吊打生爷 发现自己$T2$树的直径写怪了,不明觉厉 怕不是要凉啊 ~~不会noip考树的直径也挂了~~$(flag)$ 晚上在机房里瞎颓,明天可以不来非常开心 怕不是最后一次在机房了 阅读全文
posted @ 2019-01-01 19:05 asuldb 阅读(786) 评论(1) 推荐(3)