• Codeforces Round #272 (Div. 2)C. Dreamoon and Sums 数学推公式


    C. Dreamoon and Sums
     

    Dreamoon loves summing up something for no reason. One day he obtains two integers a and b occasionally. He wants to calculate the sum of all nice integers. Positive integer x is called nice if  and , where k is some integer number in range[1, a].

    By  we denote the quotient of integer division of x and y. By  we denote the remainder of integer division of x andy. You can read more about these operations here: http://goo.gl/AcsXhT.

    The answer may be large, so please print its remainder modulo 1 000 000 007 (109 + 7). Can you compute it faster than Dreamoon?

    Input

    The single line of the input contains two integers ab (1 ≤ a, b ≤ 107).

    Output

    Print a single integer representing the answer modulo 1 000 000 007 (109 + 7).

    Sample test(s)
    input
    1 1
    output
    0
    Note

    For the first sample, there are no nice integers because  is always zero.

    For the second sample, the set of nice integers is {3, 5}.

    题意:给你a,b,现在对所有x满足  div(x,b)/mod(x,b) =k  (1<=k<=a)  的x求和 取摸.

    题解:  设y=div(x,b),z=mod(x,b),

    可以得到

    y=z*k,y*b+z=x,联立得

    (kb+1)z=x,

    下面用到求和公式,

    然后假设k为常量,得到x=b(b-1)*(kb+1)/2,

    最后k还原为变量,得到x=b(b-1)/2*[(1+a)a*b/2+a] 

    ///1085422276
    #include<bits/stdc++.h>
    using namespace std ;
    typedef long long ll;
    #define mem(a) memset(a,0,sizeof(a))
    inline ll read()
    {
        ll x=0,f=1;
        char ch=getchar();
        while(ch<'0'||ch>'9')
        {
            if(ch=='-')f=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9')
        {
            x=x*10+ch-'0';
            ch=getchar();
        }
        return x*f;
    }
    //****************************************
    ll mod =1000000007;
    #define maxn 100000+5
    ll a,b;
    int main(){
       a=read(),b=read();
       a=((b*((a*(a+1)/2)%mod))%mod+a)%mod;b=((b*(b-1))/2)%mod;
       cout<<(a*b)%mod<<endl;
      return 0;
    }
    代码
  • 相关阅读:
    Fatal error: Maximum execution time of 30 seconds exceeded in
    常见变量命名规则
    Rust使用国内镜像安装依赖
    flutter使用国内镜像源
    7个每天晚上应该坚持的好习惯
    网络数据传输格式的思考
    Deepin安装 ruby 包管理工具 RVM(适用于 Debian 系列)
    C语言数据类型关键字
    win10 powershell禁止运行脚本解决
    Linux 查看系统相关信息(系统发型版本及内核版本等)
  • 原文地址:https://www.cnblogs.com/zxhl/p/4930409.html
Copyright © 2020-2023  润新知