——题目出处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=3000000+4;
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=1;i<=n;i++){scanf("%d",&a[i]);cnt[a[i]]++;}}else{int t;scanf("%lld",&a[1]);cnt[a[1]]++;for(int i=2;i<=n;i++){a[i]=(1LL*a[i-1]*a[i-1]+1LL*7*a[i-1]+34221)%m+1;cnt[a[i]]++;}}for(int i=1;i<=m;i++){s[i]=s[i-1]+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=1;i<=m;i++){for(int j=i;j<=m;j+=i){lp[i]+=(s[min((ll)j+i-1,m)]-s[j-1])*(j/i);}}ll ans=0;for(int i=1;i<=m;i++){val[i]+=val[i-1];//cout<<val[i]<<" "<<lp[i]<<endl;ans^=(lp[i]+val[i]);}printf("%lld",ans);return 0;
}

转载于:https://www.cnblogs.com/Miracevin/p/9633093.html

EOJ 262 润清的烦恼相关推荐

  1. selenium webdriver操作chrome 启用无痕模式,摆脱清缓存烦恼

    当启用浏览器打开网页的时候,可以直接启用无痕模式,省去清理缓存这一步骤. 初始化ChromeOptions 并设置"–incognito" ChromeOptions option ...

  2. 海尔 T68D笔记本 [待续]

    4月27日,NVIDIA与海尔电脑在北京召开新闻发布会,共同庆祝"海尔&英伟达联合高清实验室"成立一周年,并于发布会上推出一款基于全新GeForce 9100M G芯片组的 ...

  3. 滚烫出炉:06中国IT十大财经人物

    历经两个月的筹划,以及海选(抽样调查).入围者筛选.候选人提名.专家评判等多个程序,一年一度的第四届"中国IT十大财经人物暨十佳市场策划"评选于日前正式揭晓. 荏苒2006,多少新 ...

  4. 计算机学术论文shortessay,英语学术论文与研究方法-北京林业大学外语学院.doc

    PAGE PAGE 1 外语学院硕士研究生课程教学大纲 英语语言文学研究方法 Research Methods in English Language and Literature 总学时:32 实验 ...

  5. 按图搜索淘宝、天猫、1688商品API。(拍立淘API)

    为了进行此平台API的调用,首先我们需要做下面几件事情. 1. 获取一个KEY. 2. 参考API文档里的接入方式和示例. 3.查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求. 4. ...

  6. 画论63 俞蛟《读画闲评》

    [中国历代画论目录] ●闵孝子传 闵孝子,名贞,字正斋,或呼闵骏子.居湖北汉口镇.幼失怙恃,稍长,见人于岁时伏腊,悬父母图像而致祭者,辄欷歔流涕,痛二亲遗容不获见也.或谓写真家有迫容之法,求生人眉目口 ...

  7. 汉英谚语与中西方文化(转贴)

    汉英谚语与中西方文化(转贴) 汉英谚语与中西方文化 (海归论坛 www.haiguinet.com) 2005-06-03 (海归论坛 www.haiguinet.com) Abstract: The ...

  8. 画论73 龚贤《龚贤论画》

    [中国历代画论目录] 目录 画诀 柴丈画说 半千课徒画说 画诀 学画先画树,后画石,画石外为轮廓,内为石纹,石纹之后方用皴法.石纹者,皴之现者也.皴法者,石纹之浑者也. 画石笔法亦与画树同,中有转折处 ...

  9. ai在计算机教学中的应用,浅谈人工智能在教育中的应用

    浅谈人工智能在教育中的应用 孙立友 摘要:随着人工智能技术的进步,以及研究的深入和在教育领域的逐步推广,对教育领域产生了深远的影响.人工智能对于弥补当前教育存在的种种缺陷和不足,推动教育发展改革和教学 ...

  10. 文化因素对商标翻译的影响

    文化因素对商标翻译的影响 黄瑞红 (浙江广播电视大学 外语系,浙江 杭州 310012) 摘要: 文化渗透于社会生活的各个方面,翻译不可避免地受到文化因素的影响.商标翻译不仅是一种语言翻译,更是一种文 ...

最新文章

  1. 百越杯 Reverse (crazy write up)
  2. SAP 物料主数据里的Commodity Code
  3. 对于150kHz导航信号放大检波天线保护电路
  4. 《leetcode》remove-duplicates-from-sorted-array-ii
  5. git版本回退命令_Git学习版本回退和管理文件的修改及删除操作
  6. 构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)
  7. 纪事地图和Yahoo Cloud服务基准
  8. Java中的记录器 - Java日志示例
  9. aspose word 转pdf中文乱码_pdf转word——都是乱码!怎么办
  10. .net 根据模板创建html文件
  11. python软件包版本查询的方法
  12. 指纹匹配算法matlab,指纹识别算法matlab程序
  13. Google OKR 目标管理体系学习
  14. 2021 中国开源码力榜启动,寻找开源世界的超级码丽
  15. 500台网吧设计方案实验--基于华为模拟器
  16. linux中mtd是什么目录,Linux mtd system
  17. APP性能测试--帧率测试
  18. 巴士博弈_自主穿梭巴士内部和服务的设计
  19. getenv()和环境变量
  20. 带你了解SN74LVC245ADWR

热门文章

  1. Python——python3的requests模块的导入
  2. UWP开发学习笔记3
  3. Nginx资源合并优化模块nginx-http-concat
  4. 北京交通大学第六届新生程序设计竞赛题解
  5. bzoj1029题解
  6. [H5-Compress-Image]利用canvas实现 javascript 图片压缩处理_基于requirejs模块化的代码实现...
  7. 团队开发——冲刺1.e
  8. CSS实现三角形的方法--拓展
  9. 转的一个itoa实现(效率很高,并且能够正确处理INT_MIN)
  10. idea连接sqlite