Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
34593 LYLAKIOI 【S】T1 C++ 通过 100 0 MS 256 KB 1618 2024-11-12 12:41:53

Tests(11/11):


#include<bits/stdc++.h> #define up(i,l,r) for(int i=(l);i<=(r);++i) #define down(i,l,r) for(int i=(l);i>=(r);--i) #define pi pair<int,int> #define p1 first #define p2 second #define m_p make_pair #define p_b push_back typedef long long ll; using namespace std; const int mod=1e9+7; inline ll read(){ ll x=0;short t=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')t=-1;ch=getchar();} while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar(); return x*t; } ll l,r; int qp(int a,int b){ int res=1; while(b){ if(b&1)res=res*1ll*a%mod; a=a*1ll*a%mod;b>>=1; }return res; } int S1(ll n){ n%=mod; return n*1ll*(n+1)%mod*1ll*qp(2,mod-2)%mod; } int S2(ll n){ n%=mod; ll f1=n*n%mod; ll f2=(n+1)*(n+1)%mod; return f1*1ll*f2%mod*1ll*qp(4,mod-2)%mod; } ll F(ll n){return (2*S2(n)%mod+S1(n))%mod;} ll F1(ll n){n>>=1;return (2*S2(n)%mod*8ll%mod+S1(n)*2ll%mod)%mod;} ll F2(ll n){return (F(n)-F1(n)+mod)%mod;} ll g(ll l,ll r){return (S1(r)-S1(l-1)+mod)%mod;} ll calc(ll n){ if(!n) return 0; ll l=0,r=1e9; while(l+1<r){ ll mid=l+r>>1; if(mid*mid+mid<=n)l=mid; else r=mid; } ll res=(F2(l)-F1(l)+mod)%mod; if(!(l&1))(res+=g(l*l+l+1,n))%=mod; else res=(res+mod-g(l*l+l+1,n))%mod; return res; } void slv(){ ll l=read(),r=read(); ll res=(calc(r)-calc(l-1)+mod)%mod; printf("%lld\n",res); } int main(){ //freopen("alice.in","r",stdin); //freopen("alice.out","w",stdout); slv(); fclose(stdin); fclose(stdout); return 0; }


测评信息: