LC T668笔记 [涉及知识:二分查找.第K小数.BFPRT算法] [以下内容仅为本人在做题学习中的所感所想,本人水平有限目前尚处学习阶段,如有错误及不妥之处还请各位大佬指正,请谅解,谢谢!] !!!观前提醒!!! [本文篇幅较大,如有兴趣建议分段阅读] 有关二分查找 作用:在有序集合中快速查找目标值 适用性: 1. 只能查找有序的数据集 顺序存储的数据结果就是数组了,也就是二分查找只能从数组中查找,而不能查找链式存储的数据集,比如查找链表中的数,就不能用二分查找. 2. 针对的是静态有序数据…
描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很多船位,但船位再多也是有限的.Nettle通过捞船又出了一艘稀有的船,但是已有的N(1≤N≤1,000,000)个船位都已经有船了.所以Nettle不得不把其中一艘船拆掉来让位给新的船.Nettle思考了很久,决定随机选择一个k,然后拆掉稀有度第k小的船. 已知每一艘船都有自己的稀有度,Nettle现在把所有船的稀有度值告诉你,希望你能帮他找出目标船. 提示:非有序数组的二分查找之二 输入 第1行:2个整数N,k.N表…
题目: CVTE笔试题https://www.1024do.com/?p=3949 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节. 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个.一个查询串的重复度越高,说明查询它的用户越多,也就是越热门.),请你统计最热门的10个查询串,要求使用的内存不能超过1G.   思路:此题解题步骤可分为两步:1.统计每个“查询串”(下称为query)出现的次数  …
PageRanking 通过: Input degree of link "Flow" model - 流量判断喜好度 传统的方式又是什么呢? Every term在某个doc中的权重(地位). 公共的terms在Query与Doc中对应的的地位(单位化后)直接相乘,然后全部加起来,构成了cosin相似度. Efficient cosine ranking 传统放入堆的模式:n * log(k) 使用Quick Select:n + k * log(k) : "find to…
#1133 : 二分·二分查找之k小数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很多船位,但船位再多也是有限的.Nettle通过捞船又出了一艘稀有的船,但是已有的N(1≤N≤1,000,000)个船位都已经有船了.所以Nettle不得不把其中一艘船拆掉来让位给新的船.Nettle思考了很久,决定随机选择一个k,然后拆掉稀有度第k小的船. 已知每一艘船都有自己的稀有度,Nettle现在把所有…
题目链接:http://hihocoder.com/contest/hiho37/problem/1 , 简单二分. 算法: 题目即为求一个无序数组数组中第k小的数,由于数据量太大,排序是会超时的. 采用提示的算法,即对于选定的Mid,以a[Mid]为支点进行一趟快排,这样比a[Mid]小的数都在Mid之前,比a[Mid]大的数在Mid之后.这时有如下三种情况: 若k<Mid,则有第k小的数一定在a[L..Mid-1]之中,令R = Mid - 1 若k=Mid,则a[Mid]就是我们要找的数…
P1 : 二分·二分查找之k小数 Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB 描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很多船位,但船位再多也是有限的.Nettle通过捞船又出了一艘稀有的 船,但是已有的N(1≤N≤1,000,000)个船位都已经有船了.所以Nettle不得不把其中一艘船拆掉来让位给新的船.Nettle思考了很久, 决定随机选择一个k,然后拆掉稀有度第k小的船. 已知…
思路: 类似于快排的分治算法. 实现: #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; ; ], n, k; int partition(int * num, int l, int r) { ; int x = num[m]; while (i != j) { while (j > m &&…
第K小数 题目背景 SOURCE:NOIP2016-AHSDFZ T1 题目描述 有两个正整数数列,元素个数分别为 N 和 M .从两个数列中分别任取一个数相乘,这样一共可以得到 N*M 个数,询问这 N*M 个数中第 K 小数是多少. 输入格式 第一行为三个正整数 N,M 和 K . 第二行为 N 个正整数,表示第一个数列. 第三行为 M 个正整数,表述第二个数列. 输出格式 输出包含一行,一个正整数表示第 K 小数. 样例数据 1 输入 2 3 4 1 2 2 1 3 输出 3 样例数据 2…
二分·二分查找 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Nettle最近在玩<艦これ>,因此Nettle收集了很多很多的船(这里我们假设Nettle氪了很多金,开了无数个船位).去除掉重复的船之后,还剩下N(1≤N≤1,000,000)种不同的船.每一艘船有一个稀有值,任意两艘船的稀有值都不相同,稀有值越小的船越稀有,价值也就越高.Nettle现在通过大建又造出了一艘船,他想知道这艘船是不是重复的.如果是重复的,那么这艘船在Nettle所有的船里面稀有值排…