zoukankan      html  css  js  c++  java
  • CF468C Hack It! 构造

    传送门


    让人觉得脑子不够用的构造

    考虑对于一个区间([l,r])如何让它调整使得最后的结果恰好加上(1)

    注意到对于一个(<10^{18})的数(x)(f(x+10^{18}) = f(x)+1),所以如果(r-l = 10^{18} - 1)(l < 10^{18}),那么将区间([l,r])变为区间([l+1,r+1])之后,答案恰好增加(1)

    (a leq 10^{18}),所以我们初始取(l=0,r=10^{18}-1),之后不断将区间([l,r])变为区间([l+1,r+1]),一定可以在不超过(10^{18})次内找到满足(mod a=0)(l,r),也就是每一次从([l,r])变为([l+1,r+1])(l < 10^{18}),所以这样是一定可以构造出方案的。

    那么我们最后需要做的事情就是求(sumlimits_{i=0}^{10^{18}-1}f(i))的值了。

    (egin{align*} sumlimits_{i=0}^{10^{18}-1} f(i) & = 45 imes 10^{17} + 10 imes sumlimits_{i=0}^{10^{17}-1} f(i) \ & = 45 imes 10^{17} + 450 imes 10^{16} + 100 imes sumlimits_{i=0}^{10^{16}-1} f(i) \ &= ... \ &= 45 imes 18 imes 10^{17} \ &= 8.1 imes 10^{19} end{align*})

    那么我们令(l = a - (8.1 imes 10^{19} mod a) , r = l + 10^{18}-1),就是一组合法的解。

    注意上面保证了(l eq 0)

    都说到这里了你难道不会写代码吗?

  • 相关阅读:
    QuartzNet使用
    Flex Metadata tags 元数据标签
    fb设置viewSourceURL
    免费开放的API
    测试跨域加载
    nape.geom.MarchingSquares
    bootstrap 全局样式
    <meta> 标记汇总
    bootstrap模版兼容IE浏览器代码嵌入
    正则表达式语法
  • 原文地址:https://www.cnblogs.com/Itst/p/11295346.html
Copyright © 2011-2022 走看看