09 2019 档案

摘要:"题目" 考虑暴力怎么写 首先将所有数排序,之后一个一个加入,设当前加入的数的和为$sum$,要加入的数为$x$ 结论就是,如果$x sum+1$,那么最小的不能表示的数就是$sum+1$,否则就另$sum=sum+x$,继续加入 正确性显然,因为当前加入的数的和为$sum$,所以能表示出来的数的范 阅读全文
posted @ 2019-09-30 22:48 asuldb 阅读(214) 评论(1) 推荐(0)
摘要:"牛客OI月赛12 提高组" 当天晚上被$loli$要求去打了某高端oj部分原创的模拟赛,第二天看了牛客的题觉得非常清真,于是就去写了 不难发现现场写出$260\text{pts}$并不需要动脑子,而且$260\text{pts}$甚至还有$rk2$,感觉没打非常吃亏 A.小w的进制转换 大概理解一 阅读全文
posted @ 2019-09-29 09:06 asuldb 阅读(280) 评论(0) 推荐(0)
摘要:"题目" 题意简洁明了,就是做一个01背包,但是背包的容量$W$非常大,并且给出的物品的体积都能表示成$a\times 2^b,a\leq 10,b\leq 30$ 显然这个$a$拿来做背包的体积非常合适,于是我们按照$b$分类,设$dp_{i,j}$表示只使用$a\times 2^i$形式的物品, 阅读全文
posted @ 2019-09-28 16:56 asuldb 阅读(161) 评论(0) 推荐(0)
摘要:"题目" 考虑正难则反,答案即为$n! \text{返回值为n的排列数}$ 一个排列的返回值为$n$,当且仅当在$n$出现之前没有一个数后面有连续$k$个小于它的数 设$f_i$表示$1$到$i$的排列中,没有任何一个数后面有连续$k$个小于它的数 枚举$i$的位置,则有 $$f_i=\sum_{j 阅读全文
posted @ 2019-09-27 08:57 asuldb 阅读(180) 评论(0) 推荐(0)
摘要:"题目" 学习了$\rm Dilworth$定理,即 偏序集的最小全序集划分等于最大反链长度 定理的内容看起来非常自闭,偏序集、全序集和反链都是个啥 偏序集其实非常常见,经典的二维偏序、三维偏序其实就是最基本的偏序关系,比如说一个二元组集合$A$,对于$(x_1,y_1),(x_2,y_2)\in 阅读全文
posted @ 2019-09-26 13:51 asuldb 阅读(282) 评论(0) 推荐(0)
摘要:"题目" 发现自己一年之前非常垃圾 题目大意是给你一个$n$个点的环,给每个点一个$[1,a_i]$的取值,并且满足环上任意相连两点权值不能相等,求方案数 考虑断环为链,发现不大会 不妨考虑所有$a_i$均相等的情况,设$m=a_i$ 对于第一个点,有$m$种选择,其后每一个点的取值都不能和上一个相 阅读全文
posted @ 2019-09-25 16:25 asuldb 阅读(197) 评论(0) 推荐(0)
摘要:"题目" 吉老师的题做不动啊 首先$[l_1,r_1],[l_2,r_2]$并不是非常好做,我们考虑将其拆成前缀信息 设$solve(n,m)=\sum_{i=0}^n\sum_{j=0}^m[m|(i\bigoplus j)]$ 于是我们的答案就变成了$solve(r_1,r_2) solve(l 阅读全文
posted @ 2019-09-24 19:55 asuldb 阅读(130) 评论(0) 推荐(0)
摘要:"题目" 吉老师的题时过一年还是不会做 从$1$号点出发经过每条边至少一次并且还要回到$1$号点,这跟欧拉回路的条件非常像,但是欧拉回路的实际上是" 经过每一条边恰好一次并且回到出发点 " 所以可以理解为将每一条边拆成多条边,使得总边权和最小,并且图中存在一条欧拉回路 而一张图存在欧拉回路的条件是不 阅读全文
posted @ 2019-09-24 15:05 asuldb 阅读(122) 评论(0) 推荐(0)
摘要:"题目" 睿智题,二分一下点权变成了$P_i S_i\times mid$,树上背包一下求一个大小为$m+1$的点权大于$0$的联通块即可 所以我为啥写这题来着 代码 阅读全文
posted @ 2019-09-24 10:20 asuldb 阅读(113) 评论(0) 推荐(0)
摘要:"题目" 复习$\rm AC$自动机来了 一道简单题,转化一些题意就是在$\rm AC$自动机走一条长度为$L$的路径,使得这条路径经过$n$个不同的目标点 求方案显然直接搞,设$dp_{i,j,s}$表示走了$i$步,目前在$\rm AC$自动机第$j$个节点,经过的节点的状态为$s$,转移显然随 阅读全文
posted @ 2019-09-23 21:02 asuldb 阅读(246) 评论(0) 推荐(1)
摘要:"题目" 我们发现对于排列$A$中,一组$ia_j$,我们却可以通过交换使得$a_j$更靠前,也就是我们在$A$中的交换只能消除一些逆序对,而不能产生新的逆序对 于是我们想要得到排列$B$,必须 使得$B$中的任意一个逆序对在$A$中也是逆序的 ,否则就不可能通过交换使得$A$变成$B$;即一旦$B 阅读全文
posted @ 2019-09-23 14:26 asuldb 阅读(135) 评论(0) 推荐(0)
摘要:"题目" 比较精妙的$\text{2 sat}$建图了 还是按照套路把每个电台拆成$(0/1,i)$表示不选/选 前两种连边是板子就不解释了 考虑如何限制选择一个唯一的$f$,并且还能限制不选$f\notin [l_i,r_i]$的电台 考虑前缀优化建图,我们建$(0/1,i)$表示在$[0,i]$ 阅读全文
posted @ 2019-09-22 18:59 asuldb 阅读(298) 评论(0) 推荐(0)
摘要:"题目" 看起来非常随机游走,但是由于我们可以停在原地,所以变得不是非常一样 设$f_x$表示从$x$到$n$的期望距离 如果我们提前知道了$f$,那么我们随机到了一张到$y$的车票,发现$f_y f_x$,那么我们不如停在原地再随一张 所以就有 $$f_x=\frac{\sum_{(x,y)\in 阅读全文
posted @ 2019-09-22 15:02 asuldb 阅读(175) 评论(0) 推荐(0)
摘要:"题目" 数据范围非常奇怪,询问的逆序对个数$k\leq 30000$,我们应该可以把所有的情况都求出来 发现对于树上两点$x,y$,如果$x$是$y$的祖先,那么绝对值较大的点的符号决定了能否形成逆序对 如果$a_x a_y$,不取反$a_x$,那么无论$a_y$取反与否,肯定会形成逆序对,因为$ 阅读全文
posted @ 2019-09-22 09:57 asuldb 阅读(316) 评论(0) 推荐(0)
摘要:"题目" 这么明显的限制条件显然是$\text{2 sat}$ 考虑按照时间拆点,$(0/1,x,t)$表示$x$个人在时间$t$是生/死 有一些显然的连边 $$(0,x,t+1) (0,x,t)$$ 就是如果想在$t+1$时刻还是活着那必须在$t$时刻还活着 $$(1,x,t) (1,x,t+1) 阅读全文
posted @ 2019-09-21 21:27 asuldb 阅读(361) 评论(0) 推荐(0)
摘要:"题目" 来复习$\text{2 sat}$了 首先对于$\operatorname{'a'},\rm{'b'},\rm{'c'}$这三种地图,能放在上面的车只有两种 但是对于$\rm{'x'}$能放三种车,变成一个$\text{3 sat}$ 众所周知$\text{3 sat}$只能搜索,于是我们 阅读全文
posted @ 2019-09-21 15:14 asuldb 阅读(212) 评论(0) 推荐(0)
摘要:"题目" 正着考虑把边割断感觉非常难以考虑,于是考虑一下将整个过程倒过来,也就是把红边树变成蓝边树 不难发现最后一步我们割断的边肯定是两棵树上都有的边,毕竟最后一步的时候原树只剩下了一条边 如果两棵树没有公共边,那么直接输出$\text{NO}$即可 再来考虑一下$n 2$步是怎么操作的 不难发现我 阅读全文
posted @ 2019-09-20 14:59 asuldb 阅读(265) 评论(0) 推荐(0)
摘要:"题目" 一个显然的$dp$,设$dp_{i,j}$表示其中一个棋子在$x_i$点,另一个棋子在$j$点的最小花费 显然$dp_{i,j}$有两种转移 第一种是把$x_i$上的棋子移到$x_{i+1}$,那么那么就是$dp_{i+1,j}=\min(dp_{i,j}+|x_{i+1} x_i|)$ 阅读全文
posted @ 2019-09-19 18:44 asuldb 阅读(295) 评论(0) 推荐(1)
摘要:"题目" 瑟瑟发抖,这竟然只是个蓝题 题意大概就是初始在$0$,要到坐标为$D$的地方去,有$n$条指令,第$i$条为$d_i$。当收到一条指令$x$后,如果向$D$方向走$x$后距离$D$更近,那么就走;否则就停留在原地。 现在有$Q$次询问,第$i$次询问为$q_i$,问能不能仅改变$d_{q_ 阅读全文
posted @ 2019-09-19 16:53 asuldb 阅读(201) 评论(0) 推荐(0)
摘要:"题目" 瞎猜一下我们只要$n$次询问就能确定出$\{A_i\}$来 感受一下大概是询问的区间越长代价就越小,比如询问$[l,n]$或$[1,r]$的代价肯定不会超过$[l,r]$ 所以大胆猜一下我们询问的只有一些前缀和后缀 首先我们肯定要询问一下$[1,n]$的和,之后我们考虑顺次得到$A_1$到 阅读全文
posted @ 2019-09-18 16:09 asuldb 阅读(351) 评论(0) 推荐(0)
摘要:"题目" 通过这道题成功发现我不会矩乘 答案是一个连分数,看起来不像是一般的数据结构能做的样子,设$x_{l,r},y_{l,r}$分别表示$[l,r]$询问的分子和分母 于是有 $$\frac{x_{l,r}}{y_{l,r}}=a_{l}+\frac{y_{l+1,r}}{x_{l+1,r}}= 阅读全文
posted @ 2019-09-18 15:09 asuldb 阅读(239) 评论(0) 推荐(0)
摘要:"题目" 大概理解一下这个图是$n$个点$n$条边的有向图,也就是一个基环内向树森林 考虑一下一个大小为$S$的简单环怎么做 画画图就知道,随便找个点顺着打过去,最少可以让$\left \lceil \frac{S}{2}\right \rceil$个人死;在一个点死之前让它去开一枪,最多可以让$S 阅读全文
posted @ 2019-09-17 18:40 asuldb 阅读(237) 评论(0) 推荐(0)
摘要:"题目" 考虑一个不用修改就能删空的序列长什么样子 设$cnt_i$表示$i$出现的次数,我们可以视为在$i$位置有一根高度为$cnt_i$的柱子,我们把所有柱子像左边推到,如果这些柱子恰好能覆盖$[1,n]$这个区间,那么就说明可以删空 这样想想发现非常形象,一次删除操作就相当于把当前最右边的柱子 阅读全文
posted @ 2019-09-17 14:09 asuldb 阅读(194) 评论(0) 推荐(0)
摘要:"题目" 考虑正难则反,拿总方案数$m^n$减掉不合法的方案 由于我们最后一次涂了一段长度为$k$的连续颜色段,所以合法的方案有一段长度至少为$k$的颜色相同段 不合法的方案一定没有,于是我们求一下有多个颜色序列没有长度大于等于$k$的颜色相同段就好了 显然我们强制往后加一段长度小于$k$的段就行了 阅读全文
posted @ 2019-09-16 18:45 asuldb 阅读(219) 评论(0) 推荐(0)
摘要:"题目" 首先我们知道,在树上距离一个点最远的点一定是直径的两个端点之一 首先两遍$\rm dfs$把直径求出来,定义$d(u)$表示点$u$距离其最远点的距离,有了直径我们就能求出$d$数组了 当然可以树形$\rm dp$,设$f_{x,i,j}$表示在$x$子树内部选择一个最大值为$i$最小值为 阅读全文
posted @ 2019-09-15 16:40 asuldb 阅读(260) 评论(0) 推荐(0)
摘要:"题目" 是个傻题 显然枚举每一条路径经过了多少次,如果$u,v$在树上不是祖先关系的话经过$(u,v)$这条路径的路径条数就是$sum_u\times sum_v$ 于是我们子树大小映射到$\rm Trie$上去,树形$\rm dp$一下就可以求出所有点对产生的贡献了 但是这样祖先关系的节点就算错 阅读全文
posted @ 2019-09-10 21:23 asuldb 阅读(205) 评论(0) 推荐(0)
摘要:"题目" 首先考虑一下环形的区间覆盖问题怎么做 我们可以把环倍长成链,之后惊讶的发现我只会枚举一个$i$作为起点跑$[i,i+m]$的区间覆盖 看起来非常垃圾,但是会这样做就够了 考虑枚举到的这个$i$作为一个某一个给定的区间的左端点的时候,想要覆盖$[i,i+m]$这段区间这个给定的区间是必须选择 阅读全文
posted @ 2019-09-10 17:28 asuldb 阅读(206) 评论(0) 推荐(0)
摘要:"题目" $\rm splay$水平太差,于是得手玩一下才能发现规律 首先插入一个数,其肯定会成为其 前驱的右儿子或者是后继的左儿子 ,进一步手玩发现前驱的右儿子或者是后继的左儿子一定只有一个是空的,我们找到这个空位置插入就好了 于是我们需要一个$\rm std::set$来查找前驱后继,同时我们还 阅读全文
posted @ 2019-09-09 15:45 asuldb 阅读(212) 评论(0) 推荐(0)
摘要:"题目" $(r_1,c_1),(r_2,c_1),(r_1,c_2)$三个格子存在就说明$(r_2,c_2)$存在,如果我们将$r_1,c_2,c_1,r_2$都看成一些点的话,那么这个关系就非常类似于$r_1$和$c_1$联通,$r_2$和$c_1$联通,$c_2$和$r_1$联通,那么就说明$ 阅读全文
posted @ 2019-09-08 21:43 asuldb 阅读(279) 评论(0) 推荐(0)
摘要:"题目" 对于一个$\rm DAG$答案非常显然,就是除去$1$以外所有节点入度的乘积 矩阵树定理显然是可以证明的,但是一个更为直观的理解方法就是对于每一个点从能到达它的点中找一个父亲 加上这条边之后,我们还是先求出所有节点入度的乘积,显然这样算出来的并不全是外向树,还有一些奇怪的环状物 考虑减掉这 阅读全文
posted @ 2019-09-08 20:23 asuldb 阅读(153) 评论(0) 推荐(0)
摘要:题目 大致是长剖+\(\rm dsu\ on\ tree\)的思想 先做一个转化,改为对于\(i\in[1,n-1]\)求出有多少个\(f(u,v)\)满足\(i|f(u,v)\),最后再容斥一下。 既然我们要求有多少对\(f(u,v)\)是\(i\)或\(i\)的倍数,我们需要在长剖的时候快速合并 阅读全文
posted @ 2019-09-08 17:39 asuldb 阅读(312) 评论(0) 推荐(0)
摘要:"题目" 发现这个题的本质就是在做$\rm hash$ 我们显然能够列出$n$个方程,之后高消,这是$O(n^3)$的 但是观察一下第一个和第二个方程 $$a_{1}26^{n 1}+a_{2}26^{n 2}+...+a_{n}26^{0}=b_1$$ $$a_{2}26^{n 1}+a_{3}2 阅读全文
posted @ 2019-09-08 14:18 asuldb 阅读(277) 评论(0) 推荐(0)
摘要:今天突然$\rm pdf$题面了,认真打了打,于是自闭了 $\rm T1$是个简单的结论题,给定$n,m,q$,求$[1,q]$里不能被$n\times x+m\times y$表示的数有多少个 一眼大凯的疑惑既视感 首先设$r=(n,m)$,能表示的数就一定是$r$的倍数,于是我们让$n=\fra 阅读全文
posted @ 2019-09-08 10:39 asuldb 阅读(218) 评论(4) 推荐(0)
摘要:"题目" 读进来$f$之后,把权值作为第一关键字从小到大排序,位置作为第二关键字从大到小排序,这样排序后的第$i$个位对应的位置就应该填数字$i$ 权值作为第一关键字,保证了出现在其之前的数权值必它小的填的数也比它小,权值必它大的填的数也比它大;权值相同时按照位置从大到小排序,这样权值相同的一组就是 阅读全文
posted @ 2019-09-06 21:40 asuldb 阅读(178) 评论(0) 推荐(0)
摘要:"题目" 子异和这个名字,真是思博 显然一个集合的子集异或和为,$2^{|S| 1}\times A$,$A$为集合的或和 于是现在的问题变成了树链异或一个数,求树链或和 显然强行拆位是可以做的,复杂度$O(n\log n\ \log mod)$,还是$\rm lct$于是直接飞了 通过一番玄妙重重 阅读全文
posted @ 2019-09-06 20:05 asuldb 阅读(168) 评论(0) 推荐(0)
摘要:"题目" 看起来啥都不会 先来思考那个子问题,给出$2\times k$个树上关键点,让这些关键点两两匹配,使得$k$对匹配的边权和最小 不妨考虑树上差分,众所周知,让路径$(x,y)$上边权加$1$只需要使得$x,y$点权加$1$,$\rm LCA(x,y)$点权减$2$,再求一下子树和即可 先将 阅读全文
posted @ 2019-09-06 16:29 asuldb 阅读(245) 评论(0) 推荐(0)
摘要:"题目" ~~和成爷达成一致,被卡随机的话就是过了~~ 考虑一个完全平方数的所有质因子次幂一定是偶数,于是对于每一条边我们都只保留其出现次数为奇数的质因子 注意到有一个点的$w\leq 80$,于是考虑状压质因子,对于第$i$个质数,我们定义其权值为$2^{i 1}$,这样我们就把每一条边的权值都变 阅读全文
posted @ 2019-09-05 20:15 asuldb 阅读(244) 评论(0) 推荐(0)
摘要:"题目" 好像虚高胡策搬过这道题 设$t=\min a_i$,不难发现我们一旦对$t$取模之后,就一定小于$t$,也就是之后再对其他数取模就没有什么意义了 当然一上来就可以对$t$取模,但是$x\% t$并不一定是最优答案, 所以我们要通过其他的$a_i$把$x$调整一下,使得它模$t$的值尽量大 阅读全文
posted @ 2019-09-04 16:51 asuldb 阅读(172) 评论(1) 推荐(0)
摘要:"题目" 题意简介明了,需要找到一个$T$,最小化 $$\sum_{i=1}^n\left \lfloor \frac{a_i}{T} \right \rfloor+\sum_{i=1}^na_i\%T$$ 非常显然的$a_i\%T=a_i \left \lfloor \frac{a_i}{T} \ 阅读全文
posted @ 2019-09-03 21:32 asuldb 阅读(305) 评论(0) 推荐(2)
摘要:"题目" 看起来就像是数位$\rm dp$ 不妨从竖式乘法的角度来考虑这个问题 为了方便处理进位,我们得从低位向高位填数 设$dp[i][0/1][j][p][t]$表示填到了第$i$位,卡不卡上界,$f(x)=j$,$f(k\times x)=p$(不计算最高位),需要向最高位进$t$的$x$有多 阅读全文
posted @ 2019-09-03 20:13 asuldb 阅读(273) 评论(0) 推荐(1)
摘要:"题目" 不难发现有一个暴力$dp$ 设$dp[x][l]$表示$x$点子树内所有叶子节点到$x$的路径上都有$l$和黑点时最多能染多个黑点 转移就是 $$dp[x][l]=\max(\sum_{v\in son(x)}dp[v][l],1+\sum_{v\in son(x)}dp[v][l 1]) 阅读全文
posted @ 2019-09-03 14:12 asuldb 阅读(144) 评论(0) 推荐(0)
摘要:"题目" 不难发现我们直接走过去就行了 考虑到第$i$行的构造方法就是把$b$数组作为模板,每个数和$a_i$异或一下就可以了 于是不难发现对于一段连续相等的$a$,它们在矩阵上就形成了完全相同的好几行 同时这个矩阵上只有两种本质不同的行,一种是$b$和$1$异或得到的,一种是和$0$异或得到的 显 阅读全文
posted @ 2019-09-02 21:08 asuldb 阅读(167) 评论(0) 推荐(0)
摘要:"题目" 一个很暴力的辣鸡做法 考虑到两个数的$\gcd$是所有质数次幂取$\min$,两个数的$\rm lcm$是所有质数次幂取$\max$,于是最后的答案一定是$\prod p_i^{c_i}$,而且这里最大的质数不会超过$n$,于是我们考虑算出每一个质数的次幂是多少 于是我们成功的将$\pro 阅读全文
posted @ 2019-09-02 17:37 asuldb 阅读(308) 评论(0) 推荐(0)