60分WA求助
  • 板块P7813 谜
  • 楼主Moeebius
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/8/30 18:40
  • 上次更新2023/11/4 08:20:24
查看原帖
60分WA求助
356003
Moeebius楼主2021/8/30 18:40
#include<bits/stdc++.h>
#define ll unsigned long long
using namespace std;
const __int128 MOD=1000000007;

__int128 sum(__int128 x, __int128 y)//求和
{
    return ((x+y)*(y-x+1)/2)%MOD;
}

int main(){
    ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int tccnt;
	cin>>tccnt;
    ll n,k;
	while(tccnt--)
	{
	    cin>>n>>k;
	    __int128 lst=n*(n+1)/2%MOD;
	    __int128 scd=n*(n-1)/2%MOD;
	    if(k%2==0)
	    {
	        __int128 s=(sum(lst-k/2+1,lst)+sum(scd-k/2+1,scd))%MOD;
	        cout<<(unsigned long long)s<<endl;
	    }
	    else
	    {
	        __int128 s=(sum(lst-k/2+1,lst)+sum(scd-k/2+1,scd)+lst-k/2)%MOD;
	        cout<<(unsigned long long)s<<endl;
	    }
	    
	}
    return 0;
}
2021/8/30 18:40
加载中...