JZOJ 5434. 【NOIP2017提高A组集训10.30】Matrix
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相关推荐
- 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 ...
- JZOJ 5435. 【NOIP2017提高A组集训10.30】Graph
Description Input Output Data Constraint Solution 一开始还以为是 LCT 这样的高级数据结构,但是仔细算了算复杂度,发现直接做也可以过. 按边权从小到 ...
- 【NOIP2017提高A组集训10.30】总结
今天干了些什么: ①看到第一题,我蒙B了--感觉这题之前在哪里见过,记得好像是将图斜过来看还是怎样的.于是去看第二题. ②第二题一个很显然的做法,将边排序,然后暴力建MST.然而我将时间复杂度多算了一 ...
- JZOJ 5417. 【NOIP2017提高A组集训10.24】方阵
Description 题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 为了准备校庆庆典,学校招募了一些学生组成了一个方阵,准备在庆典上演出. 这个方阵是一个n*m的矩形,第i行 ...
- 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 ...
- JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
Description Input Output Data Constraint Solution 设前缀和 g[i][j]g[i][j] 表示 AA 为 ii .BB%A 为 jj 的数量. 这样就 ...
- JZOJ 5431. 【NOIP2017提高A组集训10.28】序列操作
Description 一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1. 问最多可以进行多少轮操作后无法操作(即没有c[i] ...
- JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...
- JZOJ 5419. 【NOIP2017提高A组集训10.24】筹备计划
Description 题目背景 热烈庆祝北京师范大学附属实验中学成立100周年! 问题描述 校庆筹备组的老师们正在寻找合适的地方来举办校庆庆典.学生们的位置和可以举办庆典的位置在x轴的正半轴取值在[ ...
最新文章
- linux文件时间属性的详解
- [C#学习]多线程编程——多线程基础
- 机电传动控制课程第一周学习笔记
- 【LeetCode】LRU Cache 解决报告
- java打地鼠游戏-有背景音乐有图
- BZOJ 3992 [SDOI2015]序列统计
- 学习笔记(46):Python实战编程-protocol
- 北方大学 ACM 多校训练赛 第十五场 数字游戏
- 带有谓词的Java中的功能样式-第1部分
- dft对称性 matlab实验,数字信号处理实验指导书(审)
- [react] 使用React的memo和forwardRef包装的组件为什么提示children类型不对?
- div的水平居中和垂直居中
- oracle hint firstrow,Dynamics AX 2009客户端配置文件启动路径问题
- 一篇文章学懂ADB命令和Monkey命令
- 使用站长工具进行目标域名登记查询
- mongodb联合查询
- python绘制椭圆双曲线_奇妙一招:如何用“尺规作图”作出椭圆双曲线抛物线?...
- 鸿蒙系统手机电脑互传文件,【手机篇】巧借局域网,便捷实现手机电脑间的文件传输...
- 2022 IEEE Fellow:AI华人之光
- 【TRIO-Basic从入门到精通教程十六】UDP通讯测试补充