震惊!一蒟蒻写代码不知道为什么WA了,想知道事情的点进来看看吧
  • 板块灌水区
  • 楼主Zq_water
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/7/25 09:16
  • 上次更新2024/7/25 09:24:56
查看原帖
震惊!一蒟蒻写代码不知道为什么WA了,想知道事情的点进来看看吧
895435
Zq_water楼主2024/7/25 09:16

P2260,WA50pts

#include<bits/stdc++.h>
#define INF 1e16
#define endl '\n'
#define PI acos(-1)
#define pb push_back
#define int long long
#define mem(x,v) memset(x,v,sizeof x)
using namespace std;
const int MOD = 19940417;
const int inv2 = 9970209;
const int inv6 = 3323403;
inline int read(){
	register int x=0,f=1;register char c=getchar();
	while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();}
	while(c>='0'&&c<='9')x=(x<<1)+(x<<3)+(c^48),c=getchar();
	return x*f;
}

int n,m,sum1,sum2,sum3,ans;

int Sumn1(int x){return x*(x+1)%MOD*inv2%MOD;}
int Sumn2(int x){return x*(x+1)%MOD*(2*x+1)%MOD*inv6%MOD;}

signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>m,sum1=n*n%MOD,sum2=m*m%MOD,sum3=n*n%MOD*m%MOD;
	if(n>m)swap(n,m);
	for(int l=1,r=1;l<=n;l=r+1){
		r=(n/(n/l));
		sum1=(sum1-(Sumn1(r)-Sumn1(l-1)+MOD)%MOD*(n/l)%MOD+MOD)%MOD;
	}
	for(int l=1,r=1;l<=m;l=r+1){
		r=(m/(m/l));
		sum2=(sum2-(Sumn1(r)-Sumn1(l-1)+MOD)%MOD*(m/l)%MOD+MOD)%MOD;
	}
	for(int l=1,r=1;l<=n;l=r+1){
		r=min({(n/(n/l)),(m/(m/l)),n});
		int f1,f2;
		f1=(Sumn1(r)-Sumn1(l-1)+MOD)%MOD*((n/l)*m%MOD+(m/l)*n%MOD)%MOD;
		f2=(Sumn2(r)-Sumn2(l-1)+MOD)%MOD*(n/l)%MOD*(m/l)%MOD;
		sum3=(sum3-f1+f2+MOD)%MOD;
	}
	ans=(sum1*sum2%MOD-sum3+MOD)%MOD;
	cout<<ans;
	return 0;
}
2024/7/25 09:16
加载中...