BZOJ 2154 Crash的数字表格 莫比乌斯反演

题目大意:求Σ[1<=i<=n]Σ[1<=j<=m]LCM(i,j) mod 20101009

题解见 http://www.cnblogs.com/jianglangcaijin/archive/2013/11/27/3446169.html

我到底写错什么了这么慢。。。。

#include 
#include 
#include 
#include 
#define M 10001000
#define MOD 20101009
using namespace std;
typedef long long ll;
ll n,m,ans,sum[M];
int mu[M]={0,1},prime[1001001],tot;
bool not_prime[M];
void Linear_Shaker()
{
	int i,j;
	for(i=2;i>n>>m;
	Linear_Shaker();
	if(n>m) swap(n,m);
	for(i=1;i<=n;i=last+1)
	{
		last=min(n/(n/i),m/(m/i));
		ans+=F(n/i,m/i)*(Sum(last)-Sum(i-1))%MOD;
		ans%=MOD;
	}
	cout<<(ans+MOD)%MOD<


你可能感兴趣的:(莫比乌斯反演,BZOJ)