zoukankan      html  css  js  c++  java
  • P1630 求和

    题意:求$sum_{i=1}^a i^b,a,ble 10^9$

      暴力只有30分QAQ(本数学蒟蒻当然想不到正解啦)

    正解:模数很小,不难(?)想到$i^a%10000=(i+b)^a %10000$

       因此只需要预处理$sum_{i=1}^{10000} i^b$

       之后$10001^b%10000=1^b%10000$

         $10002^b%10000=2^b%10000$

         $a^b%10000=(a-k*10000)^b%10000$

      所以$ans=a/10000*f[10000]+f[a%10000]$

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cctype>
    #include<algorithm>
    using namespace std;
    #define int long long
    #define olinr return
    #define _ 0
    #define love_nmr 0
    #define DB double
    #define mod 10000
    inline int read()
    {
        int x=0,f=1;
        char ch=getchar();
        while(!isdigit(ch))
        {
            if(ch=='-')
                f=-f;
            ch=getchar();
        }
        while(isdigit(ch))
        {
            x=(x<<1)+(x<<3)+(ch^48);
            ch=getchar();
        }
        return x*f;
    }
    inline void put(int x)
    {
        if(x<0)
        {
            x=-x;
            putchar('-');
        }
        if(x>9)
            put(x/10);
        putchar(x%10+'0');
    }
    int T;
    int a;
    int b;
    inline int ksm(int x,int y)
    {
        int re=1LL;
        while(y)
        {
            if(y&1)
                re=re*x%mod;
            x=x*x%mod;
            y>>=1;
        }
        return re;
    }
    int f[10505];
    signed main()
    {
        T=read();
        while(T--)
        {
            a=read();
            b=read();
            f[1]=1;
            for(int i=2;i<=mod;i++)
                f[i]=(f[i-1]+ksm(i,b))%mod;
            put((a/mod*f[mod]+f[a%mod])%mod);
            putchar('
    ');
        }
        olinr ~~(0^_^0)+love_nmr;
    }
  • 相关阅读:
    linux mint 安装微信2
    linux mint 安装微信
    linux mint ubuntu 安装virtualbox
    linux mint ubuntu 安装qq
    centos7--web项目使用远程mysql数据库
    centos7---ansible批量部署
    kali破解ssh
    centos7安装配置LVS+keepalived高可用
    centos安装配置mariadb
    centos7安装mysql
  • 原文地址:https://www.cnblogs.com/olinr/p/9585010.html
Copyright © 2011-2022 走看看