链接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 算式子相关推荐

  1. 牛客练习赛29: F. 算式子

    链接:https://www.nowcoder.com/acm/contest/211/F 来源:牛客网 题目描述 给定  个整数  .保证  . 对于每个  ,求出 .为了避免过量输出,你只需要将所 ...

  2. 【牛客网】牛客练习赛19 F 算式子【数学--递推 、前缀、数字】

    传送门:算式子 花了一些时间理解AC的代码,震惊,代码真的是短小精悍,推理能力很强亦或者是做题多,见的多. 能够理解里面的逻辑真的挺难的 题意 给定n,m,\(1\le x\le m\),求\(\su ...

  3. 牛客练习赛29 题解

    牛客练习赛29 A. 可持久化动态图上树状数组维护01背包 题解 这题跟标题没有任何关系- 贪心的使得负数删除的时候下标尽可能大,然后正数的时候下标尽可能小. 观察到每个数下标最大的时候就是它的初始下 ...

  4. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  5. 牛客练习赛50 F tokitsukaze and Another Protoss and Zerg(分治NTT)

    一些废话: 写完上一题(分治FFT)之后记起之前牛客写的这道题,题解是用启发式NTT,每次选两个项数最小的合并,当时没有整理NTT的模板所以就先mark了,今天受到分治FFT的启发,想用分治NTT来解 ...

  6. 牛客练习赛 43 F Tachibana Kanade Loves Game 容斥原理(Java版ac)

    链接:https://ac.nowcoder.com/acm/contest/548/F 来源:牛客网 题目描述 立华奏是一个天天打比赛的萌新. 省选将至,萌新立华奏深知自己没有希望进入省队,因此开始 ...

  7. 牛客练习赛63 F 牛牛的树行棋 (SG函数+树差分)

    链接:https://ac.nowcoder.com/acm/contest/5531/F 来源:牛客网 牛牛的树行棋 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 524288K, ...

  8. 牛客练习赛63 F.牛牛的树行棋(博弈 SG函数)

    题目链接:https://ac.nowcoder.com/acm/contest/5531/F 牛牛的树行棋 前置知识 思路 代码 前置知识 这道题目需要博弈论中的SG函数的知识,这里就不多赘述.主要 ...

  9. 牛客练习赛71 F 红蓝图(kruskal重构树)

    红蓝图 给定两个参数x,tx, tx,t,删除边权大于ttt的红边,和边权小于ttt的蓝边,问对于所有的点yyy,既能通过红边走向xxx,又能通过蓝边走向xxx,的点有多少个. 考虑对红边按照边权升序 ...

  10. 牛客练习赛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_ ...

最新文章

  1. GWPY:利用公开的 LIGO 数据进行绘图
  2. java 接口与抽象类的区别
  3. 直接修改PE文件头PE标识字段的实验
  4. vue 初始化方法_Vue源码解读(一)引入Vue做了什么
  5. 在win8下安装使用java及在win8下部署java环境变量-图文
  6. Megcup 2017 决赛第一题 规则
  7. 福利 | droidcon Beijing 2016安卓技术大会
  8. [Usaco2011][bzoj2442][洛谷2527]修剪草坪解题报告(dp,贪心,单调队列)
  9. 安信可nbiot模块_安信可wifi模块
  10. WPS表格(Excel)常用函数与技巧总结
  11. ArcGIS教程:Workflow Manager的基本词汇
  12. 子库存-OU-库存组织-关系
  13. 子串、真子串、非空子串、非空真子串的求解方法(数据结构)
  14. 双击.bat文件闪退
  15. 宏的本质以及宏(包括函数式宏) 没有返回值概念
  16. R语言学习day2丨三大法宝:判断、循环、函数
  17. Zotero添加影响因子插件IF
  18. 吴恩达深度学习课后作业course2第三周 超参数调试、Batch正则化和程序框架
  19. 弱网测试工具-Network-Emulator-Toolkit
  20. c语言随机产生100个字母,C语言实现生成1到100随机数的方法

热门文章

  1. Linux!为何他一人就写出这么强的系统,中国却做不出来?
  2. 推荐一个准确率99.9%的离线IP地址定位服务!
  3. Linux Kernel 5.0 近日正式面向公众
  4. 应对互联网变局,这 8 件事必须要做。
  5. mysql基础之忘掉密码解决办法及恢复root最高权限办法
  6. Python3 从零单排17_类的继承
  7. css案例学习之父子块的margin
  8. 百度地图之添加控件——比例尺、缩略图、平移缩放
  9. Python 获取URL访问的HEAD头信息
  10. Java编程风格与命名规范整理(转载)