社区讨论
求助why CE,洛谷评测机都没CE
CF249E Endless Matrix参与者 3已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo1cfact
- 此快照首次捕获于
- 2023/10/22 18:45 2 年前
- 此快照最后确认于
- 2023/11/02 19:07 2 年前
估计是因为__int128
CPP#include<bits/stdc++.h>
#define mod __int128(10000000000)
#define mo (long long)(10000000000)
using namespace std;
long long s(__int128 x,__int128 y)
{
if(x==0||y==0) return 0;
__int128 ans=0,n=min(x,y);
if(n%2) ans=((((((n*n+1)/2)%mod)*n)%mod)*n)%mod;
else ans=(((n*n/2)%mod)*((n*n+1)%mod))%mod;
if(x>y)
{
__int128 b=(((((y-1)*(2*y-1))%(6*mod))*y)/6)%mod,c=(((((x-1)*(2*x-1))%(6*mod))*x)/6)%mod;
c=(c-b+mod)%mod;
ans=(ans+(c*y)%mod+((((y+1)*y/2)%mod)*(x-y))%mod)%mod;
}
if(y>x)
{
__int128 c=(((((y+1)*(2*y+1))%(6*mod))*y)/6)%mod,b=(((((x+1)*(2*x+1))%(6*mod))*x)/6)%mod;
c=(c-b+mod)%mod;
ans=(ans+(c*x)%mod+mod-((((x-1)*x/2)%mod)*(y-x))%mod)%mod;
}
return (ans%mod+mod)%mod;
}
long long sc(__int128 x,__int128 y)
{
if(x==0||y==0) return 0;
__int128 ans=0,n=min(x,y);
if(n%2) ans=((((((n*n+1)/2))*n))*n);
else ans=(((n*n/2))*(n*n+1));
if(x>y)
{
__int128 b=((((y-1)*(2*y-1))*y)/6),c=((((x-1)*(2*x-1))*x)/6);
c=c-b;
ans=ans+(c*y)+((((y+1)*y/2))*(x-y));
}
if(y>x)
{
__int128 c=(((((y+1)*(2*y+1)))*y)/6),b=((((x+1)*(2*x+1))*x)/6);
c=c-b;
ans=(ans+(c*x)-((((x-1)*x/2))*(y-x)));
}
return ans;
}
long long t,xa,ya,xb,yb;
int main()
{
cin>>t;
for(int ac=1;ac<=t;ac++)
{
cin>>ya>>xa>>yb>>xb;
// cout<<s(xb,yb)<<" "<<s(xb,ya-1)<<" "<<s(xa-1,yb)<<" "<<s(xa-1,ya-1)<<endl;
// cout<<sc(xb,yb)-sc(xb,ya-1)-sc(xa-1,yb)+sc(xa-1,ya-1)<<endl;
if(0>=sc(xb,yb)-sc(xb,ya-1)-sc(xa-1,yb)+sc(xa-1,ya-1)||10000000000<=sc(xb,yb)-sc(xb,ya-1)-sc(xa-1,yb)+sc(xa-1,ya-1)) cout<<"...";
cout<<(s(xb,yb)-s(xb,ya-1)-s(xa-1,yb)+s(xa-1,ya-1)+3*mo)%mo<<endl;
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...