Loading

省选培训day4

省选集训day4

考试

T1

有一些袋鼠,第 \(i\) 只体积为 \(a_i\) ,袋子体积为 \(b_i\) ,并且有 \(b_i<a_i\),如果 \(a_i<b_j\) 那么可以把 \(i\) 放到 \(j\) 的袋子里面。我们一直放到不能放为止。每个袋鼠能且只能放一个袋鼠在他的袋子里,并且能且只能被放到一个袋鼠的袋子。问有多少不同的结果,两个结果不同当且仅当没有被放在袋子里的袋鼠不同。

我们把 \(a_i\) 弄成黑点,\(b_i\) 为白点,把所有的点放到数轴上,我们发现把 \(i\) 放在 \(j\) 的袋子里就是从 \(b_j\) 向在他前面的一个白点 \(a_i\) 连一条边。所谓的放到不能放为止,就是指的是不存在一个黑点,在其右边有一个没有连边的白点。

于是我们可以设计一个 \(dp\) ,有 \(n^3\) ,也有大佬设计出了 \(n^2\) 而我只打出来一个 \(n^n\) 的暴力

我们设 \(f_{i,j,0/1}\) 表示考虑了前 \(i\) 个点,其中有 \(j\) 个没有匹配的黑点,黑点是不是被强制匹配。转移即可。

这里说明一下,比如说当前状态是一个白点,我们向前枚举一个是 \(1\) 的黑点转移。

T2

题目是给多组数据,每次给出 \(n,m\) ,询问在定义域为 \([0,n]\),值域在 \([0,m]\) 时最多的整点。

我们可以把上面的整点和整点之间连一个向量。需要满足的是:\(\sum\limits_{i=1}^{k}x_i=n,\sum\limits_{i=1}^ky_i=m\),并且 \(\dfrac{y_i}{x_i}\) 两两不同,\(y_i,x_i\in N^*\),并且满足斜率是单调递增的。

上面等价于在所有的向量中选 \(k\) 个,满足 \(\sum x_i\le n,\sum y_i\le m\) ,并且 \(\gcd(x_i,y_i)=1\)

如果直接暴力用背包做,物品有 \(nm\) 个,\(x\) 轴限制 \(O(n)\)\(y\) 轴限制 \(O(m)\)\(n,m\) 同阶所以复杂度 \(O(n^4)\)

观察到 \(f(n,m)\) 是在 \(O(n^{\frac5 3})\) 的数量级,我们可以把时间复杂度降到 \(O(n^{\frac{11}{3}})\)

在选择变量时可以加入一个贪心策略而不失最优性:选一个向量,必须先选所有 \(x,y\) 同时小于等于其它向量,这些以来,能选的向量就非常少,这些向量的和必须不超过 \((n,n)\),加入这一剪枝后,可选的向量变得非常少,在 \(O(n^{\frac{2}{3}})\)。证明略。这样做背包即可。

T3

不会,也没几个人听懂。就是笛卡尔树和一些非常神奇的结论。估计静态六元环都没人会做吧

然后还有一些非常神奇的结论,特殊设计的树链剖分。

杂题选讲

1

给一个素数p和原根g,求sum (g^k mod p, k=0..n)

不会

2

给定一个质数 \(p\) ,有 \(q\) 个询问,对于每一个询问,有一个 \(a\) ,需要我们找到 \(k\) 个数 \(x_1,x_2,...x_k\),满足:\(\prod\limits_{i=1}^kx_i\equiv a\bmod p\),并且 \(x_i\le2500\)

这个题需要用到离散对数。

我们设 \(g\)\(p\) 原根,不妨用 \(a\) 乘上一些小质数的逆元,得到 \(x_1,x_2...x_{k-1}\) ,并构造 \(x_k\) ,我们随便来一个参数 \(n\) ,不妨设 $g^{x_1}\equiv 2^{a_1}\times...\bmod p $,则 \(x_1\equiv ind(2)\times...\),由此多构造几个 \(g\) ,可以得到一个方程组。由此得解。

这个题听的比较模糊。

3

给定一个素数 \(p\) ,记 \(f(i)(2\le i\le p-1)\) 表示 \(i\) 关于 \(p\) ,也就是 \(i\times f(i)\equiv 1\bmod p\) ,并且要求 \(1\le f(i)\le p-1\),求出所有的 \(i\) 满足 \(f(i)=\min\limits_{k=2}^if(k)\)

观察得到 \(i\times f(i)\) 不会太大。所以我们只要枚举 \(k\) ,然后分解 \(kp+1\),注意我们可以用不等式:\((y-1)f(x)\le kp+1\),来判定当前的 \(k\) 是否足够。

至于不等式为什么成立,证明不清楚。

4

给你一个 \(nm\) 的网格,每一格有一个数字 \(a_{i,j}\),每一格还有一个权值 \(b_{i,j}\),我们可以用几条封闭的曲线围住一些数字,\(a_{i,j}\) 表示要求在这个格子上的拐点个数,在封闭曲线内的格子的 \(b_{i,j}\) 之和就是我们所得的权值,要求在满足条件的情况下全职最小。其中 \(2|nm\)

我们把所有不在封闭曲线中的格子标 \(0\) ,其余标 \(1\) ,格子最外围都标 \(0\) ,然后我们意外的发现,如果一个顶点是拐点的话,左上左下右上右下的格子要不是三个 \(0\) 一个 \(1\) 要不是三个 \(1\) 一个 \(0\) 。相当于周围 \(4\) 个格子异或等于 \(1\),不难发现如果只考虑奇偶性,一个格子的奇偶性是它所在 \(3\times 3\) 格子对角格子的异或值的奇偶性。由此可以得到,如果 \(n,m\) ,都是偶数,那么这个值是唯一确定的。如果有一个是奇数,我们可以通过 \(dp\) 来解决这个问题。

5 Bitset Master

不会

posted @ 2021-06-02 21:09  hyl天梦  阅读(70)  评论(0编辑  收藏  举报