10 2020 档案
摘要:嘟嘟嘟 这个NOI网络赛我也不知道是个什么东西,不过据说题目的质量还是挺高的,于是教练就让我做了一下。 讲真我就不会这种硬是要你把$O(n2)$暴力化简的题。 这种题,一种很常见的思路就是依次考虑以$i$结尾的所有子区间是怎么算的。 首先肯定要离散化。 接着分两种情况,第一个是$a_i$在前$i-1
阅读全文
摘要:传送 这题刚开始看到那么多式子,确实没啥思路。 但是再仔细想一想会发现挺有意思的。 因为$b$序列的限制,每一个$b_i$的二进制中的1必定只有他自己有,那么$\sum b_i$就是把他们按位与起来。 我们令$dp[S]\(表示\)\sum b_i=S$的$b$序列个数,那么答案就是$dp(i) *
阅读全文
摘要:vjudge传送 这题与其说是状压dp,到更像是插头dp。 看到$B$那么大,肯定要先离散化,然后再预处理出来每一列牛的位置,即有一头还是两头,在上面还是下面。 转移其实比较显然,就是有点恶心。 $dp[i][j]$中的$j$分四种情况: 1.棚子只建在第一行。 2.棚子只建在第二行。 3.两个棚子
阅读全文
摘要:传送门 翻译:输入正整数$n$和$k(1 \leqslant n \leqslant 400, 1 \leqslant k \leqslant 10)$,求长度为$n$的01串中有多少个不含长度至少为$k$的回文连续子串。比如$n=k=3$时只有4个串满足条件:001, 011, 100, 110。
阅读全文
摘要:vjudge传送门 题面:有$n(n \leqslant 128)$个物体,$m(m \leqslant 11)$个特征。每个物体用一个$m$位01串表示,表示每个特征是否具备。我在心里想一个物体$W$($n$个之一),你来猜。每次可以询问一个特征,然后我会告诉你:$x$是否具备这个特征。当你确定之
阅读全文
摘要:vjudge传送 这道题有两种做法。 我相信第一种做法人人都会:状压dp。 $dp[i][S]$表示到第$i$列,且第$i$列状态为$S$时的方案数。其中$S$是$0$~$2^3-1$,即三个二进制位,0表示这一格平的,1表示这一格是突出来的,即占了下一列。 接下来考虑转移,对于状态$S_1$能转移
阅读全文
摘要:传送 题面是不是看不下去了? 我中文题面都看不下去了: 你有$c(0.01 \leqslant c\leqslant 10 ^ 8)$美元现金,但没有股票。给你$m(1 \leqslant m \leqslant 100)$天时间和$n (1\leqslant n \leqslant 8)$支股票供
阅读全文
摘要:传送! 某校有$m$个教师和$n$个求职者,需讲授$s$个课程。已知每人的工资$c$和能教的课程集合,要求支付最少的工资使得每门课都至少有两名教师能教。在职教师不能辞退。(数据范围见原题面) 因为课程很少,直接状压dp。 状压的时候有两种思路:一是三进制状态压缩,二是开两个$2^8$的状态分别表示这
阅读全文
摘要:传送 题面:给定一棵$n(1 \leqslant n \leqslant 30000)$个结点的树,每条边包含长度$L$和费用$D$$1 \leqslant L,D \leqslant 1000$两个权值。要求选择一条总费用不超过$m(1\leqslant \leqslant 10 8)$的路径,使
阅读全文
摘要:传送 这道题就是一个SAM的水题(所以这也是一篇很水的博客)。 我们建完SAM后,把每一个串放上去跑就行了。因为题目要求前缀匹配,所以一旦失配,就直接返回了。 #include<cstdio> #include<iostream> #include<cmath> #include<algorithm
阅读全文
摘要:题目描述给定无向连通图G 和M 种不同的颜色,用这些颜色为图G 的各顶点着色,每个顶点着一种颜色。如果有一种着色法使G 中每条边的2 个顶点着不同的颜色,则称这个图是M 可着色的。图的M 着色问题是对于给定图G 和M 种颜色,找出所有不同的着色法。对于给定的无向连通图G 和M 种不同的颜色,编程计算
阅读全文
摘要:传送 这道题有多种做法,我的做法是二分+树上差分,复杂度比较优秀。 二分容易想到,因为如果在当前时间内能完成,那么大于他的时间内一定可以完成,所以答案符合单调性。 二分后,我们统计当前大于二分值$mid$的路径,假设有$k$条,那么我们需要找到这$k$条路径的一条公共边,使删去这条边后的最长路径的长
阅读全文
摘要:传送门 这道题以前我没做明白,今天再看看发现竟然挺好理解的。 首先我们求出最小生成树,这样我们只需要在原树上改动一条边就可以得到次小生成树了。 具体怎么改呢?已经有$n - 1$条边参与构成最小生成树了,我们枚举剩下的$m - n + 1$条边。记这条边的两个端点为$x$和$y$,权值为$w$,那么
阅读全文
摘要:传送! 这道题比较有思维难度。 首先考虑这么个事:树上有$m$个被标记的点,求使这些点连通的边集的最小总长度。 做法是把这些点按dfs序排序,然后求dfs序相邻的两个点的距离(包括第$m$个点和第1个点)。这些距离之和就是答案的二倍! 知道了这个后,这道题就好办了:对于加入或删除一个点,我们用set
阅读全文
摘要:传送 翻译:Rikka有一棵包含$n(1 \leqslant n \leqslant 3 \times 10 ^ 5)$个节点的树,节点编号为$1$到$n$。树上也标记了$m(2 \leqslant m \leqslant 3 \times 10 ^ 5)$条简单路径,第$i$条路径连接$x_i$和
阅读全文
摘要:传送! 首先有一个结论:树上三个点两两求lca,最多只会出现两个不同的点。 这个结论不难证明:对于两个点$A,B$和他们的lca,\(X\)。第三个点$C$只可能在$X$的子树内外,而这两种情况都只会使公共的lca数目最多增加1。 有了这个结论后,我们的集合地点就要选在另一个非公共的lca,$Y$上
阅读全文
摘要:题目链接 翻译:一棵无根树,给出m条边,把这m条边连上,每次你能毁掉两条边,规定一条是树边,一条新边。问有多少种方案能使树断裂。 这题想一想就明白了:考虑每一条新边连接的两个点$x$和$y$,对于这两点间树上路径的边,如果没有和其他新边连成环,那么这条边删了后树就会断裂,否则就断不了。所以每一次我们
阅读全文
摘要:知识补充 在求lca的时候,除了常规的倍增、RMQ、树剖以外,还有一种改良的倍增算法,效率是原来的一倍。 具体步骤是在dfs预处理倍增数组的时候同时维护两个时间戳$Tin$和$Tout$,分别代表dfs时进入该子树和离开该子树的时刻。 这样如果点$u$是点$v$的祖先,必然满足$Tin(u) < T
阅读全文
摘要:我大概率会参加acm,所以这个博客可能就会复活了 更新 确实复活了。
阅读全文

浙公网安备 33010602011771号