——题目出处zhoutb2333

题解:

3e6可以带一个log

又是下取整问题。但是分块会TLE。

这样考虑,我们把式子拆成两个部分。

我们先算出来每一个x的[ai/x]项,再算出来[x/ai]项。之后做和。

[x/ai]:

x和ai的倍数有一些关系。

发现,假设现在x|ai,且x/ai=k, 那么,对于任意的(x~x+ai-1)[x/ai]=k;

所以,我们可以反过来,对于每一个ai,枚举ai的倍数,在ai的每个倍数的位置上++,这个桶叫val

那么,一个x,[x/ai]的值,就是val[1~x]的和!即一个前缀和。

所以我们外层循环i,给ai的倍数打标记 。

但是会被卡,ai=1时,复杂度M^2

所以给ai再开一个桶,cnt[i]表示值为i的ai有多少个。

枚举i的倍数即可,每次val+=cnt[i],一次加了许多个。

复杂度:M*(1/1+1/2+1/3+...1/M)= MlogM

另外一部分:

[ai/x]

ai和x的倍数有一些关系。

这次就考虑外层枚举x,思路和上面差不多。

枚举x的每一个倍数j,k=j/x,

那么,对于数值在(k*x,k*x+x-1)的区间内的所有的ai,[ai/x]=k

把刚才那个桶cnt,进行一个前缀和。

所以,对于这个x,每个倍数j的贡献是:(sum(k*x+x-1)-sum(k*x-1))*k

复杂度同上。

然后两边做和就可以了。

注意:脑残的一点:n大于2e5的手动构造,mod M再加1,不是mod(M+1)

显然啊,Ai数值不能是(0,M)的,而是(1,M)

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=+;
ll n,m;
ll a[N];
ll cnt[N],tot;
ll val[N];
ll lp[N];
ll s[N];
int main()
{
scanf("%lld%lld",&n,&m);
if(n<2e5){
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
cnt[a[i]]++;
}
}
else{int t;
scanf("%lld",&a[]);
cnt[a[]]++;
for(int i=;i<=n;i++){
a[i]=(1LL*a[i-]*a[i-]+1LL**a[i-]+)%m+;
cnt[a[i]]++;
}
}
for(int i=;i<=m;i++){
s[i]=s[i-]+cnt[i];
if(!cnt[i]) continue;
for(int j=i;j<=m;j+=i){
val[j]+=cnt[i];
}
}
//for(int i=1;i<=m;i++){
/// cout<<s[i]<<endl;
//}
for(int i=;i<=m;i++){
for(int j=i;j<=m;j+=i){
lp[i]+=(s[min((ll)j+i-,m)]-s[j-])*(j/i);
}
}
ll ans=;
for(int i=;i<=m;i++){
val[i]+=val[i-];
//cout<<val[i]<<" "<<lp[i]<<endl;
ans^=(lp[i]+val[i]);
}
printf("%lld",ans);
return ;
}

EOJ 262 润清的烦恼的更多相关文章

  1. 关于[x/y]一些小想法

    [x/y],即x除以y下取整 (不会LATEX) 1.对于给定的x,对于所有的1<=y<=x, [x/y]一共有√x种取值. 证明: 对于y<=√x,y有根号种,所以值最多根号种.对 ...

  2. 45.更新一下scrapy爬取工商信息爬虫代码

    这里是完整的工商信息采集代码,不过此程序需要配合代理ip软件使用.问题:1.网站对ip之前没做限制,但是采集了一段时间就被检测到设置了反爬,每个ip只能访问十多次左右就被限制访问.2.网站对请求头的检 ...

  3. 一个DBA萌新的烦恼

    莫名其妙也好机缘巧合也罢,现在我成为了一名MySQL DBA. 为什么: 1.为什么leader让我转到DBA? 首先,我本身学习运维管理的时候就接触过数据库(mysql,redis),算是自身的优势 ...

  4. 《代码整洁之道 中文版》高清 PDF 电子书下载

    代码整洁之道.PDF 下载 代码整洁之道.PDF 中文版 高清 PDF  电子书下载 代码整洁之道下载  点我下载 作者简介  · · · · · · Robert C. Martin,Object ...

  5. HarmonyOS 润和 HiSpark开发套件 免费领!

    让人期盼已久的HarmonyOS 2.0终于在9月10日正式上线啦! 这是一件让众多开发者关注的大事件! 相信不少开发者都已经迫不及待的想上手实操了, 为了满足大家的好奇心, 也希望能有更多开发者了解 ...

  6. 实时 + 高清 + 超压缩,阿里云视频云发布业内首款 VVC 编码器 Ali266

    基于新一代国际视频编解码标准 H.266/VVC,阿里云视频云近日发布了实时高清编码器 Ali266,有力推动 H.266/VVC 标准应用的落地,真正开启 H.266/VVC 的商用之路,并强力赋能 ...

  7. 【热门技术】EventBus 3.0,让事件订阅更简单,从此告别组件消息传递烦恼~

    一.写在前面 还在为时间接收而烦恼吗?还在为各种组件间的消息传递烦恼吗?EventBus 3.0,专注于android的发布.订阅事件总线,让各组件间的消息传递更简单!完美替代Intent,Handl ...

  8. 【转载】保哥 釐清 CLR、.NET、C#、Visual Studio、ASP.NET 各版本之間的關係

    我常常不仅仅逛 博客园,还会去找国外,特别是台湾的技术部落格,发现好的文章,我便会收录,今天我转载或者全文复制,在Google 博客园,一位叫保哥, 釐清 CLR..NET.C#.Visual Stu ...

  9. CPU阿甘之烦恼

    转自“码农翻身”公共号,原文地址CPU阿甘之烦恼 总结:(程序加载到内存运行的演变过程) 内存存放程序.OS负责加载程序到内存.CPU负责运行内存中的程序 1.串行:加载一个完整程序到内存,CPU运行 ...

随机推荐

  1. Vmware vSphere 开启嵌套虚拟化

    一.vSphere 6开启嵌套虚拟化 已通过vSphere Client创建一个名字为Centos 7的虚拟机,现在需要打开该虚拟机的嵌套虚拟化功能. 1.在Esxi 服务器上面开启ssh服务,并关闭 ...

  2. Mac下基于testrpc和truffle的以太坊智能合约开发环境搭建

    原文地址:石匠的blog truffle是一个基于Javascript开发的一套智能合约开发框架,使用Solidity语言编写合约.truffle有一套自动的项目构建机制,集成了开发,测试和部署的各个 ...

  3. Array.Copy 数据是克隆吗?

    偶然看到 Array.Copy 方法的时候,想到,它是否是克隆,又是否是深克隆. 做了一个测试 public class abc { public string hello; } [TestMetho ...

  4. Python从菜鸟到高手:格式化字符串

    1. 字符串格式化基础 字符串格式化相当于字符串模板.也就是说,如果一个字符串有一部分是固定的,而另一部分是动态变化的,那么就可以将固定的部分做成模板,然后那些动态变化的部分使用字符串格式化操作符(% ...

  5. 开发简单的IO多路复用web框架

    自制web框架 1.核心IO多路复用部分 # -*- coding:utf-8 -*- import socket import select class Snow(): def __init__(s ...

  6. 渐入OO课的深处,探索多线程的秘密——OO第二次博客总结

    一次又一次的挑战,一次又一次全新的知识,我来到了多线程的面前 第五次作业 1.度量分析 >第五次作业由于很大程度上调用的是前两次电梯的一些代码,所以存在的问题与前几次也十分相似.同时由于第一次使 ...

  7. 20145214 《网络对抗技术》 Web安全基础实践

    20145214 <网络对抗技术> Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的 ...

  8. mongo导入导出命令

    1.导出工具:mongoexport     1.概念:         mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指 ...

  9. 安装mysql后遇到的一些问题

    我们安装好了mysql(cnetos7上是安装mariadb)后,出现如下图所示的问题,我们可以用netstat -lntup查看以下服务器的端口,mysql的端口一般默认为 3306,查看服务是否启 ...

  10. ansible的简单使用

    环境搭建跳过(暂无,这个以后再学习学习,不要在意这些细节) 首先,在环境搭建好后,用两台虚机来做测试,一台192.168.181.130做测试机,一台192.168.181.131为批量处理服务器 编 ...