AtCoder 杂题集
Posted hs-zlq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AtCoder 杂题集相关的知识,希望对你有一定的参考价值。
AtCoder 有许多有趣的思维题, 特此记录.
?
AGC 044 A
题意
要把起始为 0 的数变成 N, 可以乘 2, 3, 5 或加减 1, 它们有各自的代价ABCD. 问最小代价. (N ≤ 1e18, A,B,C,D ≤ 1e9).
题解
把整个过程反过来考虑. 注意到在除法前进行 +1/-1 是不会超过235的整数倍的. 例如, 当前为 31, 那么一定不会加减超过 30 或 32 再除以 2. 这意味着当前为 N 时, 以每次进行除法为划分, 下一次只会转移到 $lfloor frac{N}{k} floor 和 lceil frac{N}{k} ceil , k=2,3,5$. 进行记忆化搜索就可以解决问题.我们还要知道会到达多少种状态. 考虑每次除以 2, 3, 5次数一样的情况, 无论向上还是向下取整, 它们的取值至多差 1. 再计算一下(log_{2}{1e18}approx 60, log_{3}{1e18}approx 40 , log_{5}{1e18}approx 30). 所以可能到达的状态至多有 (2*60*40*30approx 1.5e5) 种. 这还只是一个粗略的上限, 因为这包含了部分乘积大于 1e18 的情况.
我的代码写得很搓, 这里推荐一波杜老师的代码.
?
AGC 043 B
题意
N × N 的上三角型矩阵, 给出第一行的元素, 并且取值都在([1, 3]). 其他元素满足(a_{i,j}=|a_{i-1,j}-a_{i-1,j+1}|). 问(a_{N,1})的值. (N ≤ 1e6).
题解
显然第一行的数都 -1 后不影响答案. 此时所有元素的取值范围都是$[0,2]$. 如果推导式中没有取绝对值的话, 可以直接套二项式系数.在取绝对值意义下, 奇偶性是不会改变的, 所以我们可以套二项式系数算出(a_{N,1})的奇偶. 如果是奇数, 结果就是 1. 如果是偶数, 需要考虑结果是 0 还是 2. 如果第一行的元素中有 1, 那么结果一定不会是 2. 如果没有 1, 那么对整个矩阵除以 2, 对新矩阵再套一次二项式系数, 最后结果乘以 2 即可.
?
以上是关于AtCoder 杂题集的主要内容,如果未能解决你的问题,请参考以下文章
Donation---AtCoder - AtCoder Regular Contest 098
AtCoder Nuske vs Phantom Thnook AtCoder
AtCoder Regular Contest 092 2D Plane 2N Points AtCoder - 3942 (匈牙利算法)