20230803模拟赛

20230803模拟赛

T1摆花

sb结论题,考场上题读错了,我更是sb。

直接输出最小区间长度。

T2打饭

题意

给定 \(n,k\) 和序列 \(a\)

求一个 \(a\) 的排列方式使得

\[\sum_{i=1}^{n-k} |a_i-a_{i+k}| \]

最小,输出这个最小值。

题解

可以转化成把 \(n\) 个数分成 \(k\) 组,且有 \(n \bmod k\) 个组比其他组多一个,且每组从小到大排序。

先将 \(a\) 排序。

\(dp\) 状态为 \(f_{i,j}\) 为考虑到第 \(i\) 组,有第 \(j\) 个组比其他组多一个,当前的最小答案。

\(dp\) 式子显然。

f[i][j]=min(f[i][j],f[i-1][j]+a[len(i,j)]-a[len(i,j)-m+1]);
if(j)f[i][j]=min(f[i][j],f[i-1][j-1]+a[len(i,j)]-a[len(i,j)-m]);

T3小象砍树

题意

给你一棵 \(n\) 个节点的带标号无根树。

每次,你可以选择一个度数为 \(1\) 的节点并将它从树上移除。问总共有多少种不同的方式能将这棵树删到只剩 一个点。

两种方式不同当且仅当至少有一步被删除的节点不同。

题解

典型换根 \(dp\)

\(siz_u\) 表示 \(u\) 子树的大小。

\(f,g\) 分别表示子树和以 \(u\) 为根时的答案。

\[f_u=\prod_{E_{u,v}\in G} f_v\times C_{\sum_{E_{u,i}\in G}^{v} siz_i }^{siz_v} \]

g[ed[i].v]=g[u]*inv[n-1]%mod*fac[n-siz[ed[i].v]-1]%mod*fac[siz[ed[i].v]]%mod*C(n-1,siz[ed[i].v]-1)%mod;

懒得写 \(\LaTeX\) 了。

T4路径计数

题意

给定 \(n,m\),对于一个 \(n\) 个点的完全二叉树,编号为 \(i\) 的点的父亲为 $\left \lfloor \frac{i}{2} \right \rfloor $。

现在添加 \(m\) 条边,求图上有多少条简单路径(简单路径指一条没有多次经过同一个点的路径,两条路径不同当且仅当经过的边集不同或经过边的顺序不同)。

答案对 \(1e9+7\) 取模。

\[1\leq n\leq 10^9,1\leq m\leq 10 \]

题解

posted @ 2023-09-01 21:56  sunzz3183  阅读(8)  评论(0编辑  收藏  举报
Live2D