牛客小白月赛14 -G (筛法)

题目链接:https://ac.nowcoder.com/acm/contest/879/G

题意:给定A1和A数组公式:

  

  以及B数组:

  

  求

思路:利用筛法更新b数组,最后求异或和即可。

AC代码:

#include<cstdio>
using namespace std;
const int maxn=2000005;

int n,M,a,b[maxn],ans;

int main(){
    scanf("%d%d%d",&n,&a,&M);
    for(int i=1;i<=n;++i)
        b[i]=a;
    for(int i=2;i<=n;++i){
        a=(a+7*i)%M;
        for(int j=i;j<=n;j+=i)
            b[j]+=a;
    }
    for(int j=1;j<=n;++j)
        ans^=b[j];
    printf("%d\n",ans);
    return 0;
}

 

posted @ 2019-05-12 15:59  Frank__Chen  阅读(154)  评论(0)    收藏  举报