——题目出处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. Python List Comprehension

    (一)使用List Comprehension的好处 在了解Python的List Comprehension之前,我们习惯使用for循环创建列表,比如下面的例子: numbers = range(1 ...

  2. Django_csrf

    CSRF攻击介绍 CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作.比如说,受害者 Bob 在银行有一笔存款,通过对银行的 ...

  3. “Hello World!团队”Final发布—视频链接+文案+美工

    视频发布:http://www.bilibili.com/video/av17022373/ 文案加美工:http://www.cnblogs.com/chjy/p/7990116.html SkyH ...

  4. 初学Cocos2dx

    初学cocos2dx Cocos2dx 中的主要概念包括:应用.导演.场景.层.精灵.动画.动作. Cocos2dx里面的主要类 1.CCObject Object Object Object 是co ...

  5. Task 4.5 求二维数组中的最大连通子数组之和

    任务:输入一个二维整形数组,数组里有正数也有负数. 求所有子数组的和的最大值.要求时间复杂度为O(n). 1.设计思想:因为用之前的解决子数组最大和的问题的思路一直没能解决这个问题,后来看到同学使用将 ...

  6. b5

    吴晓晖(组长) 过去两天完成了哪些任务 完善推荐算法 展示GitHub当日代码/文档签入记录 接下来的计划 推荐算法 还剩下哪些任务 组员:刘帅珍 过去两天完成了哪些任务: 修改原型,整理背景 明日计 ...

  7. week2-作业2

    项目地址:https://git.coding.net/Rainoob/calculate.git ·1.需求分析:程序可以根据输入的参数n随机产生n道四则运算计算题,每个数字在0-100之间.运算符 ...

  8. Eclipse安卓开发环境

    首先,安卓开发就要搭建安卓开发环境,现在可能流行用AS,但是由于个对eclipse恐惧感比较小一点就选择了Eclipse: 大致流程: 1.安装java开发工具包(JDK): 2.Eclipse集成开 ...

  9. 关于Keil C51中“ERROR L107: ADDRESS SPACE OVERFLOW ”的总

    最近写一个关于单片机播放音乐的程序,出现如下错误: *** ERROR L107: ADDRESS SPACE OVERFLOW ... ... Program Size: data=167.6 xd ...

  10. 用css 修改 谷歌浏览器自带的 滚动条样式

    ::-webkit-scrollbar { width: 0.5rem;}/* Track */ ::-webkit-scrollbar-track { -webkit-box-shadow: ins ...