51nod 1686 二分+离散化】的更多相关文章

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686 1686 第K大区间 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. 众数(统计学/数学名词)_百度百科 Input 第一行两个数n和k(1<=n<=100000,k<=n*(n-1)/2) 第二行n个数,0<…
1686 第K大区间 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. 众数(统计学/数学名词)_百度百科 Input 第一行两个数n和k(1<=n<=100000,k<=n*(n-1)/2) 第二行n个数,0<=每个数<2^31 Output 一个数表示答案. Input示例 4 2 1 2 3 2 Output示例 2 /* 51nod 1686…
Distance on the tree DSM(Data Structure Master) once learned about tree when he was preparing for NOIP(National Olympiad in Informatics in Provinces) in Senior High School. So when in Data Structure Class in College, he is always absent-minded about…
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686 题意: 定义一个区间的值为其众数出现的次数. 现给出n个数,求将所有区间的值排序后,第K大的值为多少. 分析: 二分答案,对于每个值判断大于等于该值的区间个数是否大于等于K 判断某个值mid时枚举右端点,找到使得以该右端点为众数的最大的左端点.那么该区间就是满足题意的一个最小的区间之一,再加上前面的区间外的元素,就可以得到右端点为该点的满足条件的区间数…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686 题意: 思路: 第K大值,所以可以考虑二分法,然后用尺取法去扫描,但是直接扫描肯定是不行的,数太大,数组开不了那么大. 没想到可以用离散化来预处理,就是先将数组排序.去重,然后对于序列中的每一个数,计算出它的lower_bound值,原来相同的数肯定还是相同的,因为n小于等于1e5,所以原来很大的值,经过这样处理之后就会变得很小了. #include<cstdio…
题目: 定义一个区间的值为其众数出现的次数. 现给出n个数,求将所有区间的值排序后,第K大的值为多少. 题解: 答案明显单调,我们考虑二分答案. 转化为判定问题后我们需要观察到一个性质: 如果一个区间的价值已经 >= mid了,那么这个无论左右端点向外延伸多少,区间价值一定仍然 >= mid 所以我们可以考虑找出所有的最小满足限制的区间,然后计算出可延伸区间. 所以我们枚举右端点,根据右端点找出对应的左端点,然后统计答案. 我们发现:根据右端点向右移动,左端点一定也向右移动. 所以我们使用双指…
第k大区间   定义一个区间的值为其众数出现的次数.现给出n个数,求将所有区间的值排序后,第K大的值为多少. Input   第一行两个数n和k(1<=n<=100000,k<=n*(n-1)/2) 第二行n个数,0<=每个数<2^31 Output   一个数表示答案. Input示例   4 2 1 2 3 2 Output示例   2 题解: 二分答案, 我们假设x,计算出多少个区间的众数大于等于K就好了 方法就是:枚举一个区间的右端点,那么我们假设找到一个左端点尽量大…
题目链接: 平均数 基准时间限制:4 秒 空间限制:131072 KB 分值: 80 LYK有一个长度为n的序列a. 他最近在研究平均数. 他甚至想知道所有区间的平均数,但是区间数目实在太多了. 为了方便起见,你只要告诉他所有区间(n*(n+1)/2个区间)中第k大的平均数就行了.   Input   第一行两个数n,k(1<=n<=100000,1<=k<=n*(n+1)/2). 接下来一行n个数表示LYK的区间(1<=ai<=100000).   Output  …
传送门 https://www.luogu.org/problemnew/show/P4479 题目描述 在平面直角坐标系上,有 n 个不同的点.任意两个不同的点确定了一条直线.请求出所有斜率存在的直线按斜率从大到小排序后,第 k 条直线的斜率为多少. 为了避免精度误差,请输出斜率向下取整后的结果.(例如: ⌊1.5⌋ = 1 , ⌊−1.5⌋ = −2 ) 分析 一开始打了一个暴力,10分后来改着改着成了30分,浮点误差. 正解其实很简单,我们首先逆向思考一下,如果我们假设已经有了斜率k. 如…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1243 1243 排船的问题 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 一个码头中有N艘船和N个木桩,船的长度为2*X,码头的宽度为M,N个木桩的位置(相对码头左岸的位置)会在数据中给出.船和船之间不能重叠,即每艘船的船头不能超过上一艘船的船尾,当然也不能超出码头的两岸.船和木桩之间用绳子…