[BZOJ2956]模积和

阅读: 评论:0

[BZOJ2956]模积和

[BZOJ2956]模积和

说在前面

突然觉得”说在前面”里的废话真是太多了= =


题目

BZOJ2956传送门

题目大意

给定 N ,M,求出 ∑i=1N∑j=1M(Nmodi)⋅(Mmodj)[i!=j] 在模19940417意义下的值。 n,m≤109

输入输出格式

输入格式:
输入一行两个整数 N M,含义如题

输出格式:
输出一行一个整数,表示答案


解法

直接化简式子,把题目中 i≠j 的拆成 ∀i,j 的答案减去 i=j 的答案。
对于 ∀i,j 有:
∑i=1N∑j=1M(Nmodi)⋅(Mmodj)
=∑i=1N∑j=1M(N−⌊ni⌋i)(M−⌊Mj⌋j)
=∑i=1N∑j=1M(NM−N⌊Mj⌋j−M⌊Ni⌋i+ij⌊Ni⌋⌊Mj⌋)
=N2M2−N2∑j=1M⌊Mj⌋j−M2∑i=1n⌊Ni⌋i+∑i=1Ni∗⌊Ni⌋∑j=1Mj∗⌊Mj⌋

对于 i=j 的情况类似,可以自行推导=w=
(其实是懒得写….Latex太麻烦了,下面这张图就是上面那一串的源码,mmp)


自带大常数的代码

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std ;const int mmod = 19940417 , inv6 = 3323403 ;
long long N , M ;long long ds( long long lf , long long rg ){return ( lf + rg ) * ( rg - lf + 1 ) / 2 %mmod ;
}long long pfs( long long lf , long long rg ){lf = lf - 1 ;long long tmp1 = rg * ( rg + 1 )%mmod * ( 2 * rg + 1 ) %mmod * inv6 %mmod ,tmp2 = lf * ( lf + 1 )%mmod * ( 2 * lf + 1 ) %mmod * inv6 %mmod ;return ( tmp1 - tmp2 + mmod )%mmod ;
}long long cal( long long a , long long lim , long long div ){long long rt = 0 ;for( int i = 1 , last = 1 ; i <= lim ; i = last ){int ed = min( div / ( div / i ) , lim ) ;rt = ( rt + ( div / i ) * ds( last , ed ) ) %mmod ;last = ed + 1 ;}return rt * a %mmod ;
}long long spe(){long long rt = 0 ;for( int i = 1 , last = 1 ; i <= M ; i = last ){int ed = min( M / ( M / i ) , N / ( N / i ) ) ;rt = ( rt + ( M / i ) * ( N / i )%mmod * pfs( last , ed )%mmod )%mmod ;last = ed + 1 ;}return rt ;
}int main(){long long ans1 = 0 , ans2 = 0 ;scanf( "%lld%lld" , &N , &M ) ;if( N < M ) swap( N , M ) ;ans1 = N * N%mmod * M%mmod * M%mmod - cal( N*N%mmod , M , M ) - cal( M*M%mmod , N , N ) + cal( 1 , N , N ) * cal( 1 , M , M ) %mmod ;ans1 = ( ans1%mmod + mmod )%mmod ;ans2 = N * M%mmod * M%mmod - cal( N%mmod , M , M ) - cal( M%mmod , M , N ) + spe() ;ans2 = ( ans2%mmod + mmod )%mmod ;printf( "%lld" , ( ans1 - ans2 + mmod )%mmod ) ;
}

本文发布于:2024-01-28 08:08:55,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064005416008.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23