【9204】第k小整数】的更多相关文章

蒟蒻发题解了 说明:此题我用的方法为桶排(我翻了翻有人用了桶排只不过很难看出来,可能有些重复的,这个题只是作为一个专门的桶排来讲解吧) (不会算抄袭吧 ‘QWaWQ’) 简单来说(会的人跳过就行): 桶排就是开两个数组,其中一个用来输入以及存储样例数列,另一个用来排序: 排序方法:(我用的第二个数组为b数组) b[a[i]]=a[i]b[a[i]]=a[i] 核心代码(我认为的),先翻译一下:b数组为存储的那个桶,在b数组中第a[i]项的值为a[i]的值, 这样等到下一个a[i]与b[a[i]]…
题目传送门:https://www.luogu.org/problemnew/show/P1138 桶排: 对于值域在可以接受的范围内时,我们可以用不依赖比较的桶排去将数据排序.因为桶排不依赖比较排序,所以他可以打破\(O(nlogn)\)的复杂度下界,变成\(O(max-value)\)的,不过时间是用空间换出来的. 对于每一个值\(v\),我们都开一个数组\(sum[v]\)来当做存放权值为\(v\)的数据的桶,最后一遍\(O(maxv)\)的遍历就可以将数据排好序了. 对于这个题,我们只要…
我偏不用sort Treap好题啊 看到只有一个人写Treap,而且写的不清楚,那我就来详细地写一下,方便新人学习 第(-1)部分:前置知识 二叉查找树:满足左子树的数据都比根节点小,右子树的数据都比根节点大的二叉树 堆:满足子树中的数据均比根节点大的树,或是满足子树中的数据均比根节点小的树 第零部分:Treap简介 & 程序开头 Treap=Tree+Heap,又称"树堆". 这是因为Treap维护的数据满足二叉查找树的性质,而随机权值满足堆的性质. #include <…
Time Limit: 10 second Memory Limit: 2 MB 问题描述 现有n个整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000 Input 第一行为n和k,第二行开始为n个正整数的值,整数间用空格隔开. Output 第k个最小整数的值:若无解,则输出"NO RESULT"(大写). Sample Input 10 3 1 3 3 7 2 5 1 2 4 6 Sample Output 3…
题目描述: 现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000. 输入: 第一行为n和k,第二行开始为n个正整数的值,整数间用空格隔开. 输出: 第k个最小整数的值:若无解,则输出“NO RESULT”. 样例输入: 10 31 3 3 7 2 5 1 2 4 6 样例输出: 3 一开始想用set,但是内存超限.然后请yangjingjing学长讲了一下,先看一下代码: #include<cstdio> ],n…
题目描述 现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000. 输入输出格式 输入格式: 第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开. 输出格式: 第k个最小整数的值:若无解,则输出“NO RESULT”. 输入输出样例 输入样例#1: 10 3 1 3 3 7 2 5 1 2 4 6 输出样例#1: 3 说明 n≤10000 ——————————————————我是分割线——————————…
洛谷传送门 入门难度.. 没错,但是我并不是要暴力做. 而是用树状数组来做. 先离散化,然后随便搞一搞就可以了.(晕.比暴力还慢) 如果要查找某一区间的的话可以把区间取出重新建树,然后再求.(更暴力) #include <cstdio> #include <vector> #include <algorithm> #define N 10001 #define lowbit(x) x & -x using namespace std; int n, m, k;…
第二小整数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8299    Accepted Submission(s): 5227 Problem Description 求n个整数中倒数第二小的数.每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1.   Input 输入包含多组测试数据.输入的第一行…
http://ac.jobdu.com/problem.php?pid=1534 题目1534:数组中第K小的数字 时间限制:2 秒 内存限制:128 兆 特殊判题:否 提交:1120 解决:208 题目描述: 给定两个整型数组A和B.我们将A和B中的元素两两相加可以得到数组C.譬如A为[1,2],B为[3,4].那么由A和B中的元素两两相加得到的数组C为[4,5,5,6].现在给你数组A和B,求由A和B两两相加得到的数组C中,第K小的数字. 输入: 输入可能包含多个测试案例.对于每个测试案例,…
这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #include<cstdio> #include<cstring> using namespace std; char s[1000],result[1000]; int main() { long long divis; int n,i,k,flag,len; char c; while…