牛客练习赛77 小G的GCD(差分)

 

 

观察样例 2 ,可以发现答案为 (3+3+3),对于 k 的倍数:ak,其贡献到 (a+1)k 位置时改变,不由得想到差分的性质

const int N=1e6+5;

    int n,m;
    int i,j,k;
    ll a[N];

int main()
{
	while(~sdd(n,k)){
		for(int i=k;i<=n;i+=k) a[i]=i;
		ll ans=0;
		for(int i=1;i<=n;i++) a[i]+=a[i-1];
		for(int i=1;i<=n;i++) ans+=a[i];
		pll(ans);
	}
}

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页