EOJ 262 润清的烦恼
——题目出处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 润清的烦恼相关推荐
- selenium webdriver操作chrome 启用无痕模式,摆脱清缓存烦恼
当启用浏览器打开网页的时候,可以直接启用无痕模式,省去清理缓存这一步骤. 初始化ChromeOptions 并设置"–incognito" ChromeOptions option ...
- 海尔 T68D笔记本 [待续]
4月27日,NVIDIA与海尔电脑在北京召开新闻发布会,共同庆祝"海尔&英伟达联合高清实验室"成立一周年,并于发布会上推出一款基于全新GeForce 9100M G芯片组的 ...
- 滚烫出炉:06中国IT十大财经人物
历经两个月的筹划,以及海选(抽样调查).入围者筛选.候选人提名.专家评判等多个程序,一年一度的第四届"中国IT十大财经人物暨十佳市场策划"评选于日前正式揭晓. 荏苒2006,多少新 ...
- 计算机学术论文shortessay,英语学术论文与研究方法-北京林业大学外语学院.doc
PAGE PAGE 1 外语学院硕士研究生课程教学大纲 英语语言文学研究方法 Research Methods in English Language and Literature 总学时:32 实验 ...
- 按图搜索淘宝、天猫、1688商品API。(拍立淘API)
为了进行此平台API的调用,首先我们需要做下面几件事情. 1. 获取一个KEY. 2. 参考API文档里的接入方式和示例. 3.查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求. 4. ...
- 画论63 俞蛟《读画闲评》
[中国历代画论目录] ●闵孝子传 闵孝子,名贞,字正斋,或呼闵骏子.居湖北汉口镇.幼失怙恃,稍长,见人于岁时伏腊,悬父母图像而致祭者,辄欷歔流涕,痛二亲遗容不获见也.或谓写真家有迫容之法,求生人眉目口 ...
- 汉英谚语与中西方文化(转贴)
汉英谚语与中西方文化(转贴) 汉英谚语与中西方文化 (海归论坛 www.haiguinet.com) 2005-06-03 (海归论坛 www.haiguinet.com) Abstract: The ...
- 画论73 龚贤《龚贤论画》
[中国历代画论目录] 目录 画诀 柴丈画说 半千课徒画说 画诀 学画先画树,后画石,画石外为轮廓,内为石纹,石纹之后方用皴法.石纹者,皴之现者也.皴法者,石纹之浑者也. 画石笔法亦与画树同,中有转折处 ...
- ai在计算机教学中的应用,浅谈人工智能在教育中的应用
浅谈人工智能在教育中的应用 孙立友 摘要:随着人工智能技术的进步,以及研究的深入和在教育领域的逐步推广,对教育领域产生了深远的影响.人工智能对于弥补当前教育存在的种种缺陷和不足,推动教育发展改革和教学 ...
- 文化因素对商标翻译的影响
文化因素对商标翻译的影响 黄瑞红 (浙江广播电视大学 外语系,浙江 杭州 310012) 摘要: 文化渗透于社会生活的各个方面,翻译不可避免地受到文化因素的影响.商标翻译不仅是一种语言翻译,更是一种文 ...
最新文章
- 百越杯 Reverse (crazy write up)
- SAP 物料主数据里的Commodity Code
- 对于150kHz导航信号放大检波天线保护电路
- 《leetcode》remove-duplicates-from-sorted-array-ii
- git版本回退命令_Git学习版本回退和管理文件的修改及删除操作
- 构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)
- 纪事地图和Yahoo Cloud服务基准
- Java中的记录器 - Java日志示例
- aspose word 转pdf中文乱码_pdf转word——都是乱码!怎么办
- .net 根据模板创建html文件
- python软件包版本查询的方法
- 指纹匹配算法matlab,指纹识别算法matlab程序
- Google OKR 目标管理体系学习
- 2021 中国开源码力榜启动,寻找开源世界的超级码丽
- 500台网吧设计方案实验--基于华为模拟器
- linux中mtd是什么目录,Linux mtd system
- APP性能测试--帧率测试
- 巴士博弈_自主穿梭巴士内部和服务的设计
- getenv()和环境变量
- 带你了解SN74LVC245ADWR
热门文章
- Python——python3的requests模块的导入
- UWP开发学习笔记3
- Nginx资源合并优化模块nginx-http-concat
- 北京交通大学第六届新生程序设计竞赛题解
- bzoj1029题解
- [H5-Compress-Image]利用canvas实现 javascript 图片压缩处理_基于requirejs模块化的代码实现...
- 团队开发——冲刺1.e
- CSS实现三角形的方法--拓展
- 转的一个itoa实现(效率很高,并且能够正确处理INT_MIN)
- idea连接sqlite