开O2 30WA, 不开O2 100分???
查看原帖
开O2 30WA, 不开O2 100分???
546830
XSean楼主2023/6/20 19:04
#include<iostream>
#include<cstdio>
#include<climits>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
inline long long read()
{
	long long s=0,w=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar();}
	return s*w;
}
const long long N=1.5e6;
long long a[N],b[N];
long long sum(long long x)
{
    long long k=floor(sqrt(x*2));
    while(k*(k+1)/2>x)k--;
    return b[k]+a[x-a[k]];
}
int main()
{
	for(long long i=1;i<=N;++i)
	{
        a[i]=a[i-1]+i;
        b[i]=b[i-1]+a[i];   
    }
    long long t=read();
    while(t--)
    {
    	long long l=read(),r=read();
    	cout<<sum(r)-sum(l-1)<<endl;
	}
	return 0;
}
2023/6/20 19:04
加载中...