2024牛客寒假算法基础集训营1
D. 数组成鸡
题解
观察到
,容易知道如果绝对值不为 的数的个数大于 个的话,显然溢出,不会在答案的范围内 再仔细分析性质,如果整个数组中数的种类超过了
种,那么除了 之外,最坏的结果就是 这样的情况,他们的乘积为 ,所以显然如果种类数超过 我们可以不用管了 对于种类数小于
的情况,我们考虑暴力跑出所有可行的答案放在 中,然后 回答查询 那么究竟怎么暴力?我们分两种操作,第一种先将原数组升序排列,然后通过操作使得最小值为
,因为数组中不允许存在两个元素以上的值 ,所以暴力 枚举偏移量,然后直接暴力 去累乘,然后判断合法性,因为很容易超过 所以实际上很难跑满 ,这样就枚举出了答案的上界 第二种操作先将原数组降序排列,然后通过操作使得最大值为
,后面的操作和第一种一样,这样就枚举出了答案的下界
F. 鸡数题!
题解:第二类斯特林数
条件
:说明二进制上一共只有 个 条件
:说明每个 只能分给 个数 条件
:每个数至少有 个 条件
:分完后保证有序 发现其本质就是
个不同的小球放入 个相同的盒子中,要求盒子非空,求方案数 只是最后分完之后将盒子按照大小排序而已,所以方案数没有改变
这显然是第二类斯特林数
H. 01背包,但是bit
题解:按位枚举
假设
的第 位为 ,则如果所选物品的重量或的和在第 位为 ,那么比 低的位我们可以随便取 或 ,没有关系,比 的高的位必须是 的子集,那么我们可以尽可能贪心的选,一直逼近 所以我们只要枚举
二进制中所有 的位,然后按照上面的步骤统计出答案后取 即可 最后别忘了对
本身统计答案,只要 是 的子集,就可以拿
I. It's bertrand paradox. Again!
题解:期望 / 统计量的选定和参数估计
可以观察到第一个人生成的数据中
分布的更加均匀 所以我们定义随机变量
为点到圆心距离的平方,易得每个点被选到的概率为 ,所以得到 我们得到了
个样本,由于样本均值是无偏估计,所以我们可以大约使用样本均值来代替期望,所以我们只要求出 的样本均值后与 比较即可,误差较小的就是第一个人
J. 又鸟之亦心
题解:二分答案
考虑 check,假设检查的答案为
,一个显然的性质,当处于第 个任务的时候,一定有一个人在 位置上,所以我们通过 维护另一个人可能在的位置,如果另一个人没有位置,说明答案不合法 复杂度:
K. 牛镇公务员考试
题解:基环树 + 拓扑排序求环
容易发现对于一条链来说,只要其中任意一个题目的答案确定了,那么这条链上所有题目的答案就确定了
所以对于一个环来说,容易产生矛盾
然后我们将题目抽象为给定
个点和 个有向边的可能不连通的图,由于每个点都有一个出边,所以每个连通块一定是一颗基环树,也就是说每个连通块中一个有且只有一个环,我们只要把所有的环找出来,不在环上的一定不影响答案,然后在环上任意找一个起点,跑 次,数一下没有产生冲突的次数 那么答案就是所有环上没有冲突次数的乘积
然后问题就转化为求环,然后在环上检查合法性了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】