牛客练习赛29 F 算式子
链接F 算式子
- 给定\(n\)个整数\(a_i\)。保证\(1\leq a_i\leq m\) 。
对于每个\(1\leq x\leq m\),求出\[\sum_{i=1}^{n}([\frac {a_i}{x}]+[\frac {x}{a_i}])\] - 不会打向下取整……那两个中括号是向下取整。
- 还比较好的题,这两个东西可以分开求。
- 先考虑前面那个,就是考虑对于一个\(x\),考虑\(k*x\)到\(k*x+k-1\)中间的\(a_i\)有多少。
- 然后这一些\(a_i\)都可以产生\(k\)的贡献,前缀和统计就好了。
- 后面考虑的是对于每一个\(a_i\),他能产生增量贡献的\(x\)有哪一些。
- 也就是说,对于一个\(a_i\),在\(k*a_i\)处,都会相比之前增加\(1\)的贡献。
- 所以也是差分后前缀和统计就好了。
- 注意第一个式子,如果对于任意\(w_i=1\)的情况都直接做的话,复杂度就不是调和级数了。
- 所以要把相等的数都缩起来,枚举值域。
- 复杂度\(O(mlogm)\)
#include<bits/stdc++.h>
#define R register int
#define ll long long
#define db double
using namespace std;
const int N=3000001;
int n,m,w[N];
ll G[N],P[N],T[N],ans;
int gi(){R x=0,k=1;char c=getchar();while((c<'0'||c>'9')&&c!='-')c=getchar();if(c=='-')k=-1,c=getchar();while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();return x*k;
}
int main(){n=gi(),m=gi();for(R i=1;i<=n;++i)w[i]=gi(),G[w[i]]++;sort(w+1,w+n+1);for(R i=1;i<=m;++i)if(G[i])for(R j=i;j<=m;j+=i)T[j]+=G[i];for(R i=1;i<=m;++i)T[i]+=T[i-1],G[i]+=G[i-1];for(R i=1;i<=m;++i){for(R k=i;k<=m;k+=i)P[i]+=(G[min(m,k+i-1)]-G[k-1])*(k/i);}for(R i=1;i<=m;++i)ans^=(P[i]+T[i]);printf("%lld\n",ans);return 0;
}
转载于:https://www.cnblogs.com/Tyher/p/9863465.html
牛客练习赛29 F 算式子相关推荐
- 牛客练习赛29: F. 算式子
链接:https://www.nowcoder.com/acm/contest/211/F 来源:牛客网 题目描述 给定 个整数 .保证 . 对于每个 ,求出 .为了避免过量输出,你只需要将所 ...
- 【牛客网】牛客练习赛19 F 算式子【数学--递推 、前缀、数字】
传送门:算式子 花了一些时间理解AC的代码,震惊,代码真的是短小精悍,推理能力很强亦或者是做题多,见的多. 能够理解里面的逻辑真的挺难的 题意 给定n,m,\(1\le x\le m\),求\(\su ...
- 牛客练习赛29 题解
牛客练习赛29 A. 可持久化动态图上树状数组维护01背包 题解 这题跟标题没有任何关系- 贪心的使得负数删除的时候下标尽可能大,然后正数的时候下标尽可能小. 观察到每个数下标最大的时候就是它的初始下 ...
- 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
- 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg(分治NTT)
一些废话: 写完上一题(分治FFT)之后记起之前牛客写的这道题,题解是用启发式NTT,每次选两个项数最小的合并,当时没有整理NTT的模板所以就先mark了,今天受到分治FFT的启发,想用分治NTT来解 ...
- 牛客练习赛 43 F Tachibana Kanade Loves Game 容斥原理(Java版ac)
链接:https://ac.nowcoder.com/acm/contest/548/F 来源:牛客网 题目描述 立华奏是一个天天打比赛的萌新. 省选将至,萌新立华奏深知自己没有希望进入省队,因此开始 ...
- 牛客练习赛63 F 牛牛的树行棋 (SG函数+树差分)
链接:https://ac.nowcoder.com/acm/contest/5531/F 来源:牛客网 牛牛的树行棋 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K, ...
- 牛客练习赛63 F.牛牛的树行棋(博弈 SG函数)
题目链接:https://ac.nowcoder.com/acm/contest/5531/F 牛牛的树行棋 前置知识 思路 代码 前置知识 这道题目需要博弈论中的SG函数的知识,这里就不多赘述.主要 ...
- 牛客练习赛71 F 红蓝图(kruskal重构树)
红蓝图 给定两个参数x,tx, tx,t,删除边权大于ttt的红边,和边权小于ttt的蓝边,问对于所有的点yyy,既能通过红边走向xxx,又能通过蓝边走向xxx,的点有多少个. 考虑对红边按照边权升序 ...
- 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg
tokitsukaze and Another Protoss and Zerg 考虑生成函数,每一场的生成函数为∑j=1b[i]Cb[i]j+∑j=1a[i]Ca[i]jxj\sum\limits_ ...
最新文章
- GWPY:利用公开的 LIGO 数据进行绘图
- java 接口与抽象类的区别
- 直接修改PE文件头PE标识字段的实验
- vue 初始化方法_Vue源码解读(一)引入Vue做了什么
- 在win8下安装使用java及在win8下部署java环境变量-图文
- Megcup 2017 决赛第一题 规则
- 福利 | droidcon Beijing 2016安卓技术大会
- [Usaco2011][bzoj2442][洛谷2527]修剪草坪解题报告(dp,贪心,单调队列)
- 安信可nbiot模块_安信可wifi模块
- WPS表格(Excel)常用函数与技巧总结
- ArcGIS教程:Workflow Manager的基本词汇
- 子库存-OU-库存组织-关系
- 子串、真子串、非空子串、非空真子串的求解方法(数据结构)
- 双击.bat文件闪退
- 宏的本质以及宏(包括函数式宏) 没有返回值概念
- R语言学习day2丨三大法宝:判断、循环、函数
- Zotero添加影响因子插件IF
- 吴恩达深度学习课后作业course2第三周 超参数调试、Batch正则化和程序框架
- 弱网测试工具-Network-Emulator-Toolkit
- c语言随机产生100个字母,C语言实现生成1到100随机数的方法