• 数论分块——2020-camp-day1-C


    对一个向下整除的式子快速求和

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    //typedef __int128 LL;
    //typedef unsigned long long ull;
    //#define F first
    //#define S second
    typedef long double ld;
    typedef pair<int,int> pii;
    typedef pair<ll,ll> pll;
    typedef pair<ld,ld> pdd;
    const ld PI=acos(-1);
    const ld eps=1e-9;
    //unordered_map<int,int>mp;
    #define ls (o<<1)
    #define rs (o<<1|1)
    #define pb push_back
    //#define a(i,j) a[(i)*(m+2)+(j)]  //m是矩阵的列数
    //pop_back()
    const int seed=131;
    const int M = 1e5+7;
    const ll mod=998244353;
    /*
    int head[M],cnt;
    void init(){cnt=0,memset(head,0,sizeof(head));}
    struct EDGE{int to,nxt,val;}ee[M*2];
    void add(int x,int y,int z){ee[++cnt].nxt=head[x],ee[cnt].to=y,ee[cnt].val=z,head[x]=cnt;}
    *//*
    ll cal(ll x)//x个点的满边图 
    {
     
     return ; 
    }*/
    ll qpow(ll a,ll b)
    {
     ll ans=1;
     while(b)
     {
      if(b&1)ans=ans*a%mod;
      a=a*a%mod;
      b=b/2;
     }
     return ans%mod;
    }
    int main()
    {
     int t;
     cin>>t;
     while(t--)
     {
      ll n,l,r;
      scanf("%lld%lld%lld",&n,&l,&r);
      ll ans=0;
      for(ll i=l,gx;i<=r;i=gx+1)
      {
       gx=(n/i)?min(n/(n/i),r):r;
       ll x=n/gx;
       ll tp=((i*(((((1+x)*x%mod)*(n-x))%mod-((x*(x+1)%mod)*(n-x-1))%mod+mod)%mod)%mod+n*( ((x+1)*(n-x-1)%mod +mod-x*(n-x)%mod)%mod )%mod    +     gx*(  ((((1+x)*x%mod)*(n-x)%mod)+mod-(x*(x+1)%mod)*(n-x-1+2ll*mod)%mod )%mod )%mod+n*( ( (x+1)*(n-x-1+2ll*mod)%mod-x*(n-x)%mod +mod  )%mod )%mod  )*(gx-i+1)%mod)*qpow(2,mod-2)%mod;
       ans=(tp*qpow(2,mod-2)+ans)%mod;
      }
      printf("%lld
    ",ans);
     }
     return 0;
    }
  • 相关阅读:
    matlab 2021a 和 2021b共存的方案
    World Time Alighnment
    美化Xshell – 使用 Monokai 配色
    Centos 提示sudo: java: command not found解决办法
    typescript
    Spring MVC注册mapping
    Java执行JavaScript脚本
    vue3
    monaco editor
    rollup
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12197444.html
Copyright © 2020-2023  润新知