AtCoder Beginner Contest 217

https://atcoder.jp/contests/abc217

F - Make Pair

题意

2n2n 个学生从左到右站成一排,有 mm 对学生 (a,b)(a,b) 关系好。每次可以选择一对相邻且关系好的学生出队,并且他们左右的人被视相邻。求所有学生都出队的方案数,答案对 998244353998244353 取模。

数据范围:1n2001\leq n\leq 200

题解

fl,rf_{l,r} 表示区间 [l,r][l,r] 全部出队的方案数。考虑与 rr 一起出队的 kk,则有转移

fl,r=kfl,k1×fk+1,r1×(rl+12rk+12)f_{l,r}=\sum_{k}f_{l,k-1}\times f_{k+1,r-1}\times \binom{\frac{r-l+1}{2}}{\frac{r-k+1}{2}}

因为两个区间内部的排列数已经包括在 ff 内了,只需要考虑这两个区间彼此交错出队的情况。这就相当于是所有的出队操作中钦定一些位置分配给前一个区间出队。

G - Groups

题意

给定 n,mn,m,对于 k=1,2,nk=1,2\cdots,n:将 nn 个人分成 kk 组,要求标号模 mm 相同的人不在同一组,求方案数。答案对 998244353998244353 取模。

数据范围:2mn50002\leq m\leq n\leq 5000

题解

fi,jf_{i,j} 表示前 ii 个数分为 jj 组的方案数。

  • ii 单独一组:fi,j=fi1,j1f_{i,j}=f_{i-1,j-1}
  • ii 并入其他组,前面与它不相容的数有 i1m\lfloor\dfrac{i-1}{m}\rfloor 个,则 fi,j=fi1,j×max(0,ji1m)f_{i,j}=f_{i-1,j}\times\max(0,j-\lfloor\dfrac{i-1}{m}\rfloor)

AtCoder Beginner Contest 217
https://je3ter.github.io/2023/11/21/ACM/AtCoder Beginner Contest 217/
作者
Je3ter
发布于
2023年11月21日
许可协议