列表

详情


NC25525. many sum

描述

定义序列 A :
输入的东西~~

定义序列 B :
你要求
这样我们只要输入三个数,输出一个数啦~
其中 表示异或,也就是说你需要把所有的 B_i 异或起来输出

输入描述

第一行三个整数 N,A_1,M

输出描述

第一行一个整数,表示答案。

示例1

输入:

10 10 313

输出:

441

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 235ms, 内存消耗: 16028K, 提交时间: 2020-02-26 12:47:21

#include<bits/stdc++.h>
using namespace std;
long long a,n,m,b[2000050],ans;
int main()
{
	cin>>n>>a>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=i;j<=n;j+=i)
		b[j]+=a;
		a=(a+7*(i+1))%m; 
	}
	ans=b[0];
	for(int i=1;i<=n;i++)
	ans=ans^b[i];
	cout<<ans<<endl;
	return 0;
}

上一题