2024.7.30 test

A

有一个数 \(n\)\(m\) 种操作,第 \(i\) 次操作使得 \(n\gets n/A_i\),问最多遍历多少个数。
\(n\le 10^5,m\le 10\)

不难发现暴力即可通过。

B

给定集合 \(S\),对于每个 \(i\in [1,m]\) 你需要求出选择数最多和最少的值使得 \(\gcd=i\)
\(n,S_i\le 3e5\)

首先对于每个 \(i\) 都把是 \(i\) 的倍数的都拎出来,最多选的数就是全选,或判断无解。
最少的数呢,不难发现答案是很小的,不超过 \(7\),所以枚举答案 \(k\),再判断。
考虑设计 dp,设 \(f_{j}\) 表示是 \(\gcd=j\) 的方案数。
\(f_j=C_{cnt_j}^k-\sum_{j|t,j\neq t}f_t\)。 其中 \(cnt_j\) 表示是 \(j\) 倍数的数的个数。
只需要判断 \(f_i\) 的值即可。

C

二维平面上有 \(n\) 个点,你要将其划分成 \(m\) 部分,\(n\le 4000,m\le 3\),求方案数,满足每部分的点都可以用一个边长为 \(k\) 的横平竖直的正方形包括。

\(m=2\),不妨二分图染色求方案数,也就是 \(2\) 的连通块个数次幂。
\(m=3\),设三种颜色是 RGB。枚举 R 正方形的上左边界,强制对应的两个点(或一个点)选 R。
剩下的点也可以用上面的容斥做法做,只不过位于 R 正方形内部的点可以额外染一种颜色。

D

请求出最短的序列 \(A\),满足每个元素在 \([1,9]\) 之间,有 \(n\) 条限制,每条限制是满足存在 \(p\)
使得从 \(p\) 开始选择向左或向右走,每次把第一次遇到的数加入序列后,是限制给出的顺序。
\(n\le 10\)

考虑状压。

posted @ 2024-07-30 15:18  s1monG  阅读(11)  评论(0编辑  收藏  举报