标签:整数 绝对值 floor BMI 情况 class task 有趣的 app
AtCoder 有许多有趣的思维题, 特此记录.
?
要把起始为 0 的数变成 N, 可以乘 2, 3, 5 或加减 1, 它们有各自的代价ABCD. 问最小代价. \(N ≤ 1e18, A,B,C,D ≤ 1e9\).
我们还要知道会到达多少种状态. 考虑每次除以 2, 3, 5次数一样的情况, 无论向上还是向下取整, 它们的取值至多差 1. 再计算一下\(log_{2}{1e18}\approx 60, log_{3}{1e18}\approx 40 , log_{5}{1e18}\approx 30\). 所以可能到达的状态至多有 \(2*60*40*30\approx 1.5e5\) 种. 这还只是一个粗略的上限, 因为这包含了部分乘积大于 1e18 的情况.
我的代码写得很搓, 这里推荐一波杜老师的代码.
?
N × N 的上三角型矩阵, 给出第一行的元素, 并且取值都在\([1, 3]\). 其他元素满足\(a_{i,j}=|a_{i-1,j}-a_{i-1,j+1}|\). 问\(a_{N,1}\)的值. \(N ≤ 1e6\).
在取绝对值意义下, 奇偶性是不会改变的, 所以我们可以套二项式系数算出\(a_{N,1}\)的奇偶. 如果是奇数, 结果就是 1. 如果是偶数, 需要考虑结果是 0 还是 2. 如果第一行的元素中有 1, 那么结果一定不会是 2. 如果没有 1, 那么对整个矩阵除以 2, 对新矩阵再套一次二项式系数, 最后结果乘以 2 即可.
?
标签:整数 绝对值 floor BMI 情况 class task 有趣的 app
原文地址:https://www.cnblogs.com/hs-zlq/p/12950497.html