Description

Input

Output

Sample Input

3 5 3
1
3
5

Sample Output

1
2
3

Data Constraint

Solution

  • 首先我们二分答案 midmid ,那么可以发现这个 midmid 排序后的位置最右为:

    S=∑i=1n⌊midi⌋

    S=\sum_{i=1}^{n}\lfloor\frac{mid}{i}\rfloor

  • 其实就是将小于等于它的数的个数相加。但是这样复杂度为 O(N log N)O(N\ log\ N) ,显然会超时。

  • 于是我们想到这个的经典解法——分块。

  • 由于上式中 ⌊midi⌋\lfloor\frac{mid}{i}\rfloor 事实上有很多值是相同的,且值的数量不超过 O(n√)O(\sqrt n) 。

  • 所以我们跳着跳着地一段一段加,每次 ii 跳到

    ⌊mid⌊midi⌋⌋+1

    \lfloor\frac{mid}{\lfloor\frac{mid}{i}\rfloor}\rfloor+1

  • 统计时就整个区间统计。时间复杂度 O(n√ log n)O(\sqrt n\ log\ n) 。

Code

#include<cstdio>
#include<algorithm>
using namespace std;
const int N=5001;
int n,m,k;
inline int read()
{int X=0,w=1; char ch=0;while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar();return X*w;
}
inline int min(int x,int y)
{return x<y?x:y;
}
inline bool check(int x)
{long long pos=0;//for(int i=1;i<=n;i++) pos+=x/i;for(int i=1,p,mx=min(n,x);i<=mx;i=p+1){p=x/(x/i);pos+=(long long)(p-i+1)*(x/i);}return pos>=k;
}
int main()
{n=min(read(),read());int q=read();while(q--){int l=1,r=k=read(),ans;while(l<=r){int mid=(l+r)>>1;if(check(mid)) ans=mid,r=mid-1; else l=mid+1;}printf("%d\n",ans);}return 0;
}

JZOJ 5434. 【NOIP2017提高A组集训10.30】Matrix相关推荐

  1. JZOJ 5436. 【NOIP2017提高A组集训10.30】Group

    Description Input Output Sample Input 10 113 28 3 39 90 46 14 55 35 48 47 Sample Output 62453 Data C ...

  2. JZOJ 5435. 【NOIP2017提高A组集训10.30】Graph

    Description Input Output Data Constraint Solution 一开始还以为是 LCT 这样的高级数据结构,但是仔细算了算复杂度,发现直接做也可以过. 按边权从小到 ...

  3. 【NOIP2017提高A组集训10.30】总结

    今天干了些什么: ①看到第一题,我蒙B了--感觉这题之前在哪里见过,记得好像是将图斜过来看还是怎样的.于是去看第二题. ②第二题一个很显然的做法,将边排序,然后暴力建MST.然而我将时间复杂度多算了一 ...

  4. JZOJ 5417. 【NOIP2017提高A组集训10.24】方阵

    Description 题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出. 这个方阵是一个n*m的矩形,第i行 ...

  5. JZOJ 5438. 【NOIP2017提高A组集训10.31】Tree

    Description Input Output Sample Input 10 1 1 0 0 1 0 0 0 0 0 1 2 2 3 2 4 4 5 2 6 6 7 7 8 7 9 4 10 Sa ...

  6. JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate

    Description Input Output Data Constraint Solution 设前缀和 g[i][j]g[i][j] 表示 AA 为 ii .BB%A 为 jj 的数量. 这样就 ...

  7. JZOJ 5431. 【NOIP2017提高A组集训10.28】序列操作

    Description 一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1. 问最多可以进行多少轮操作后无法操作(即没有c[i] ...

  8. JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo

    Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...

  9. JZOJ 5419. 【NOIP2017提高A组集训10.24】筹备计划

    Description 题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典.学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[ ...

最新文章

  1. linux文件时间属性的详解
  2. [C#学习]多线程编程——多线程基础
  3. 机电传动控制课程第一周学习笔记
  4. 【LeetCode】LRU Cache 解决报告
  5. java打地鼠游戏-有背景音乐有图
  6. BZOJ 3992 [SDOI2015]序列统计
  7. 学习笔记(46):Python实战编程-protocol
  8. 北方大学 ACM 多校训练赛 第十五场 数字游戏
  9. 带有谓词的Java中的功能样式-第1部分
  10. dft对称性 matlab实验,数字信号处理实验指导书(审)
  11. [react] 使用React的memo和forwardRef包装的组件为什么提示children类型不对?
  12. div的水平居中和垂直居中
  13. oracle hint firstrow,Dynamics AX 2009客户端配置文件启动路径问题
  14. 一篇文章学懂ADB命令和Monkey命令
  15. 使用站长工具进行目标域名登记查询
  16. mongodb联合查询
  17. python绘制椭圆双曲线_奇妙一招:如何用“尺规作图”作出椭圆双曲线抛物线?...
  18. 鸿蒙系统手机电脑互传文件,【手机篇】巧借局域网,便捷实现手机电脑间的文件传输...
  19. 2022 IEEE Fellow:AI华人之光
  20. 【TRIO-Basic从入门到精通教程十六】UDP通讯测试补充

热门文章

  1. Python学习笔记:虚拟环境和包
  2. Python学习笔记: Python 标准库概览二
  3. Markdown:数学公式练习(3)
  4. Centos启动和禁用网卡命令
  5. 详解浏览器解析一个URL的全过程
  6. C++ 中const的用法,特别是用在函数前面与后面的区别!
  7. latex使用小记录
  8. [ 云炬创业基础笔记]商业模式创新
  9. [scala-spark]6. 继承与特质trait
  10. SVM熟练到精通3:核函数与非线性分类