Solution Set -「LOCAL」冲刺省选 Round XXVII
还行,B 题挺不错,C 题就省选来说有点水(?
分裂
初始时,你有一个 级球,每次可以把一个 级球变成 个 级球,请构造恰好得到 个球的方案,仅需输出最终球的等级和对应数量。
多测,,,你需要保证所有方案中球的等级种类之和不超过 。
一开始去优化“球的数量之和”,大大地伪了一发。
注意部分分有个 是阶乘,而阶乘的时候等级种类自然是最少的,所以我们先找到最大的 ,先把 级球不停操作得到 个 级球,此时再取一定数量的 级球操作到 级球,设 为还需要的球的数量,那么 。通过升级一个 级球,还原 个 级球,可以使 减少 ,模拟几次就行。
阶乘的是指数级,那么复杂度为 ,每次使用不超过 种等级。
未来
给定长度为 ,字符集为 的字符串 ,对其进行 次变换,每次变换使 变为 ,若 ,,否则 。求变换后的最终序列。
。
套路性地去想一个具有交换律、结合律的整数运算来等价表示两个字符的运算结果。进而,令三种字符为 ,可以构造出这样的运算:,并且这个负号仅由 决定,问题被转化成:给定序列 ,每次操作令 ,求 次操作后每个 。
若 的值在下标移动 次后更新到了 ,那么贡献系数显然是 ,注意仅对 取模,所以对它 Lucas 一发,设 为 的三进制分解(如果某个幂次数是 ,加两次),就组合意义上,我们可以依次对 施加 次操作,再施加 次操作,……最后总共施加 次操作。每次操作中,贡献系数都是 ,因而 或 时,才能使系数非 ,这个可以 模拟一遍算出来,所以总复杂度 。
回忆
给定一个 的网格, 以 的概率可用,求可用单元格构成的四联通块中,最大块大小的期望。
。
你能想到最暴力的插头 DP:按列转移,状态数组直接 map<pair<vector<int>, vector<int> >, int>
,过了。打了下表,有效状态数不超过 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-03-07 Solution -「USACO 2020.12 P」Spaceship