hdu6040】的更多相关文章

hdu6040 题意 将一个函数运行 n 次,一共得到 n 个值,有 m 次询问,每次询问第 k 小的值. 分析 考察了 \(nth\_element\) 函数的运用.\(nth\_element(a, a + x, a + n)\) 使得 ( \(a\) 数组下标范围 \([0, n)\) ) \(a[x]\) 存的是第 \(x\) 小的数,且保证 \(x\) 左边的数小于等于它,右边的数大于等于它( 当 \(x = 0\) 时, \(a[0]\) 是最小的值 ). 将 \(k\) 排序后从大…
题目链接:https://vjudge.net/problem/HDU-6040 题目大意: 给出 \(n\) 个数,有 \(m\) 次询问,每次询问这 \(n\) 个数中第 \(k+1\) 大的数是什么. 另有附加限制:对于 \(n\) 个数中的任意三个数 \(a,b,c\),如果满足 \(a \not= b, a < c, b < c\),则有 \(a + b \le c\). \((1 \le n \le 10^{7}, 1 \le m \le 100)\) 解题思路: 由附加限制不难联…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6040 题意:不知道北航的同学为何解释题意之前都要想一段故事,导致刚开始题意不是很懂,题意就是给你n,m,A,B,C三个点,可以用以下这段代码生成n个随机数,赋值num[N],然后给你m个数,作为m次询问赋值给q[N].然后问你第i次询问对于区间(0,n)这个区间中第q[i]+1小的数. unsigned x = A, y = B, z = C; unsigned rng61() { unsigned…
这几天做了几道随机生成数组的题,且需要用nth-elemeng函数,并且都是北航出的多校题…… 首先我们先贴一下随机生成数组函数的代码: unsigned x = A, y = B, z = C; unsigned rng61() { unsigned t; x ^= x << ; x ^= x >> ; x ^= x << ; t = x; x = y; y = z; z = t ^ x ^ y; return z; } 这个函数的原理原谅我不太懂,就不多说了-_-|…
目录 目录 思路 (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 目录 HDU6040:传送门  \(m(m\leq 100)\)次查询长度为\(n(n \leq 1e7)\)区间的第k大. 思路 利用快排的partation思想求解,但是要注意剪枝 就是标记一下被确定好位置的地方 然后这个题还可以用\(stl\)的\(nth\_element\)水过 \(nth\_element\)我没有剪枝就是暴力然后抠常数水过去了哈哈 AC代码: partation思想 #pragma comme…