摘要:
Address "Luogu 4707" Solution 前置技能:记 $max_k(S)$ 表示 $S$ 中第 $k$ 大的数,$min(S)$ 表示 $S$ 中最小的数,那么有:$$max_k(S)=\sum_{T∈S,T\neq\emptyset}\binom{|T| 1}{k 1}( 1) 阅读全文
摘要:
Solution 题意简述:选出 $k$ 个树上连通块,使得存在一个点 $u$ 满足: 1.$u$ 在这 $k$ 个连通块的交集之中。 2.对于这 $k$ 个连通块中的任意一点 $v$,都有:$dist(v,u)≤L$。 1.容斥 显然对于每一个连通块集合,满足条件的点 $u$ 构成的也是一个连通块 阅读全文
摘要:
Solution 首先发现把 $2$ 操作都丢到最后处理不会影响答案 那么可以把所有修改操作拆成在 $l$ 处加入,在 $r+1$ 处删除 把所有操作读入之后按 树的编号 顺序处理 动态维护 一棵树 ,即处理第 $i$ 棵树后,这棵树就是第 $i$ 棵树的结构 但是不维护原树结构,而是维护一个等价的 阅读全文
摘要:
Solution $LCT$,对每个节点 $u$ 维护两个信息:$s[u], si[u]$ 记 $sze[u]$ 为实子树的大小,即 $splay$ 上的子树大小 令 $s[u]=si[u]+sze[u]$ $si[u]$ :虚子树的大小之和,即所有虚儿子的 $s$ 之和 如果 $u$ 是所在重链的 阅读全文
摘要:
Solution 建议先做 "这题" 根据扩展欧拉定理$$a^b\% p ≡ a^{b \%\phi(p)+\phi(p)}\% p_,b≥\phi(p)$$$$a^b\% p ≡ a^{b \%\phi(p)}\% p,b using namespace std; define ll long l 阅读全文
摘要:
Solution 动态点分治 $+$ treap $+$ 替罪羊树的思想 容易看出,这题是一个动态的点分治。 静态的点分治是将重心作为分治中心,动态的分治,每次重心都会变,所以就不能以重心作为分治中心。 用重心作为分治中心,是因为这样最能省时间,那么是否可以不用重心呢,显然是可以的。 接下来说一说分 阅读全文
摘要:
Solution 如果一种最优解是:在时刻$t$从位置$x$开始,从时刻$t+1$开始共有$t1$个时刻选择当前物品,有$t2$个时刻选择下一个物品,那么这和在时刻$t+t1$从位置$x$开始,从时刻$t+1$开始都不选择当前物品,实际上是等价的 那么只要考虑不停留的情况,问题转化为选择一个最小的开 阅读全文
摘要:
Description 数轴上有$n$个建筑,初始高度均为$0$ 共$m$次操作,每次在位置$x_i$上修建高度为$y_i$的建筑,建筑的权值为$y_i/x_i$,求以第一个高度$ 0$的建筑开始,字典序最小的 权值 上升子序列的长度 $n,m,x_ival[p2]$ 于是有$ans[p]=ans[ 阅读全文
摘要:
Description 给定一个长度为$n$的序列$a$,有$m$次操作: (1).把区间$[l,r]$中大于$v$的数减去$v$ (2).查询区间$[l,r]$中$v$的出现次数 所有输入均在$[1,100000]$范围内 Solution ~~这种神仙题当然是分块~~ 如果只考虑整块操作,那么处 阅读全文
摘要:
problem 定义一个点的权值为它的度数的 $m$ 次方,规定 $0^0=1$。 对于一张无向图,它的权值是所有点的权值和。 求所有 $n$ 个点的无向图(共有 $2^{C_n^2}$ 种)的权值之和,对 $998244353$ 取模。 $1≤n≤10^9,0≤m≤5 10^5$ Solution 阅读全文
摘要:
Solution 先考虑$n_1=0$的情况 那么只要考虑形如$X_i =A_i$的限制 注意求的是 正整数 解的个数,即对于$i n_2$,$X_i =1(A_i=1)$ $\sum_{i=1}^{n}B_i=m$的 非负整数 解的个数为$C(m+n 1,m)$ 解释:序列共$m+n 1$个位置, 阅读全文
摘要:
Solution 首先,考虑最高的建筑$n$,它一定是从左边看到的最后一个,也是从右边看到的最后一个 剩下左边看到的$A 1$和右边看到的$B 1$个 考虑将剩下的$n 1$个建筑分成$A+B 2$个集合 从中选出$A 1$个集合,将这些集合中的建筑放在$n$的左边,剩下的放右边 这$A 1$个集合 阅读全文
摘要:
Solution 显然同样大小的子矩阵中,符合条件的最多一个 考虑判断$[0...i 1]$的数是否构成一个矩形: 将$[0...i 1]$所在格点染成黑色,剩下的染成白色 将边界以外的格点看作白色 如果$[0...i 1]$的数是否构成一个矩形,那么这$i$个点中: $(1)$ “左上都是白点”的 阅读全文
摘要:
Solution 组合数学 $+$ 前缀和优化$dp$ 考虑$P1[l...r]$和$P2[l...r]$离散化后的排列$P[1...r l+1]$ 令$i=r l+1$ 那么离散化后为$P$的子串会在$C(n,i) (n i)!$种长度为$n$的排列中出现(假设这个子串必须放在$[1...i]$) 阅读全文
摘要:
Description 如果一个竞赛图含有哈密顿回路,则称这张竞赛图为值得记录的 从所有含有$n$个顶点(顶点互不相同)的,值得记录的竞赛图中等概率随机选取一个 求选取的竞赛图中哈密顿回路数量的期望 输出答案除以$998244353$的余数 竞赛图:指任意两个顶点间恰有一条有向边的有向图 哈密顿回路 阅读全文
摘要:
Description 给定一棵$n$个点的树和正整数$k$,每条边长度都为$1$,对于每个点$u$求:$\sum_{j=1}^{n}dist(u,j)^k;$ $n using namespace std; template inline void read(t & res) { char ch; 阅读全文
摘要:
Solution 每块土地的长和宽分别用$l$和$h$数组表示。 因为一组土地购买的价格 $=$ 最大的长 $ $ 最大的宽, 所以对于一块土地$x$,如果存在一块土地$y$,满足$l[y] =l[x]$且$h[y] =h[x]$ ,那么它只要把土地$x$和土地$y$合为一组,最大的长可以不取$l[ 阅读全文
摘要:
Solution ~~此题可以十分简单粗暴地套用树状数组套主席树的模板。~~ 或者:cdq分治。 此题中,原先给出一个数列,之后会删除一些数。但是,呃,删除操作好像有点儿麻烦。反正允许离线,那就当作是初始给出一些数,先把这些数加入序列,之后会再添加一些数。也就是全部反过来算。 可以把每次的答案分成两 阅读全文
摘要:
Solution 听说这题要用数位dp。 不会。 只能用暴力了...... 举个例子:求$[29,3246]$中每个数码的出现次数。 首先想到把每个数码分开求。 好像很难。 然后想到$[1,3246]$的答案减去$[1,28]$的答案。 好像还是很难。 最后~~突发奇想~~,把位数也分开,例如:求$ 阅读全文
摘要:
Solution 以时间 $[0..T]$ 为下标建一棵线段树 线段树上的每个区间维护一个边集 对于一条边 $i$,它存在的时间区间为: $[start_i,end_i 1]$ 把 $[start_i,end_i 1]$ 区间拆成线段树上的 $O(\log T)$ 个区间 并且把边 $i$ 丢进这些 阅读全文