摘要:
相当妙的题。 异或有个很好的性质,就是异或两次会抵消。这样我们只需要考虑出现次数为奇数的方案即可。 我们设 \(t_i\) 表示 \(a_i\) 的出现次数。那么这种方案的和 \(sum=\sum_{i=1}^{n}a_it_i\),出现次数为 \[\prod_{i=1}^{n}\binom{k-\ 阅读全文
摘要:
前置知识 - Borůvka 算法 该算法用于求解最小生成树。 定义一次 “Borůvka 操作” 如下: 枚举所有不在连通块内的边。若一条边连接两个不同的连通块 \(x,y\),且这条边是连接 \(x,y\) 的边中权值最小的,那么就用这条边连接 \(x,y\),把 \(x,y\) 合并成一个连通 阅读全文
摘要:
分成几个部分处理。 一、预处理每个点的最大尺寸 特殊的,令障碍物的最大尺寸为 \(0\)。 一个朴素的想法是二分。但这样是 \(O(n^2\log n)\) 的,太逊。 考虑把障碍全塞进一个队列里跑 bfs,这样可以求出每个点到一个障碍的最短路,显然这就是尺寸的一半(注意判一下不要超出边界)。 注意 阅读全文
摘要:
边双缩点,记 \(E_i\) 表示 \(i\) 号边双内部的边数,\(V_i\) 为点数。 设 \(f_{u,0/1}\) 表示 \(u\) 子树内建/不建军营,且 \(u\) 子树外点强制不选,\(u\to fa\) 这条边强制不选,子树内建造的军营(如果有)通过被保护的边一定与 \(u\) 相连 阅读全文
摘要:
F - Fuel Round Trip 注意到路程分成了两段,所以我们也按两段 dp。 设 \(f_{i,j,k}\) 表示到第 \(i\) 个加油站,来程加油后油量为 \(j\),回程加油后油量为 \(k\) 的最小代价。 初始对于 \(0\le i\le h\),有 \(f_{0,h,i}=0\ 阅读全文
摘要:
首先考虑如何求出第 \(i\) 棵树在 \([l,r]\) 时间段能长多高。这个东西可以差分一下然后等差数列求和。放一下代码: inline lll calc(int i,int x){ if(c[i]>=0){ return (lll)b[i]*x+(lll)c[i]*x*(x+1)/2; }el 阅读全文
摘要:
首先做一点显然的转化:在进行第一次操作之后,可以将相同的数排在一起,这样一次就能删掉一种数。如果一开始就能删光一种数的话,那么次数就是区间颜色数,否则就是区间颜色数 \(+1\)。 所以现在原问题变成了两个问题:求区间内不同颜色数,判断区间内是否有某种颜色满足其出现位置构成等差数列。 第一问是经典问 阅读全文
摘要:
SDOI2024 考前复习 阅读全文