zoukankan      html  css  js  c++  java
  • CF468C 【Hack it!】

    首先有一个性质,对于(1le x< 10^{18})(f(x+10^{18})=f(x)+1)

    可以注意到:

    [sum_{i=1}^{10^{18}-1}f(i)=x(~mod~~a~ ) ]

    于是就有:

    [sum_{i=1}^{10^{18}}f(i)=sum_{i=1}^{10^{18-1}}+f(0+10^{18})-f(0)=x+1(~~mod~~a ~~) ]

    同样也可以得到:

    [sum_{i=t}^{10^{18}-1+t}f(i)=x+t(~mod~~a~) ]

    假设 (x=0),那么直接输出 (1)(10^{18}-1)

    否则可以想到 (t=a-x)

    然后直接输出 (l=t)(r=10^{18}-1+t) 即可

    于是问题的关键就在于(sum_{i=0}^{10^{18}-1}f(i))是多少了

    下面给出简略证明

    可以发现每一个数位贡献的次数是固定的,可以考虑将(10^{18}-1)看作是(18)个格子,然后放入一些数字,求所有方案放入的数字和

    于是可以枚举一个数(0le xle 9)来计算其贡献次数

    可以考虑其恰好出现 (i) 次时的答案,那么可以枚举(i)个位置选入这个数(x),然后接下来(18-i)个位置都可以放入除了(x)之外的所有数,所以有其贡献次数为:

    [i imes dbinom{i}{18} imes 9^{18-i} ]

    所以答案就是:

    [sum_{x=0}^9x imes sum_{i=0}^{18}i imes dbinom{i}{18} imes 9^{18-i} ]

    [45 imes sum_{i=0}^{18}i imes dbinom{i}{18} imes 9^{18-i} ]

    [45 imes sum_{i=0}^{18}i imes dfrac{18!}{i!(18-i)!} imes 9^{18-i} ]

    [45 imes sum_{i=1}^{18} dfrac{18 imes 17!}{(i-1)!((18-1)-(i-1))!} imes 9^{(18-1)-(i-1)} ]

    [18 imes45 imes sum_{i=0}^{17} dfrac{17!}{i!(17-i)!} imes 9^{17-i} ]

    [18 imes45 imes sum_{i=0}^{17} dbinom{17-i}{17} 9^{17-i} ]

    [18 imes45 imes10^{17} ]

    [9 imes 9 imes 10^{18} ]

    #include<bits/stdc++.h>
    using namespace std ;
    #define rep( i, s, t ) for( register int i = s; i <= t; ++ i )
    #define re register
    #define int long long
    int gi() {
    	char cc = getchar() ; int cn = 0, flus = 1 ;
    	while( cc < '0' || cc > '9' ) {  if( cc == '-' ) flus = - flus ; cc = getchar() ; }
    	while( cc >= '0' && cc <= '9' )  cn = cn * 10 + cc - '0', cc = getchar() ;
    	return cn * flus ;
    }
    int P = 1e18, l, r ;
    signed main()
    {
    	int A = gi() ; 
    	l = A - ( ( P % A ) * 9 % A * 9 ) % A, r = l + P - 1 ;
    	printf("%lld %lld", l, r ) ;
    	return 0 ;
    }
    

    qwq

  • 相关阅读:
    写在学期将要结尾处
    程序有感
    Python字典操作小汇总
    mysql 乱码解决方案
    公告 百度安家
    本周工作安排
    bind1st/bind2nd
    OpenGL放大缩小实现
    Eclipse安装SVN插件
    QQ也玩命令行
  • 原文地址:https://www.cnblogs.com/Soulist/p/11679608.html
Copyright © 2011-2022 走看看