camp day6

A题.题意:给出一个环,就是0到2^30,0和2^30的点是重合的,而后告诉你1e5个随机的点, 如今给出一个k, k<=n, 要求你挑k个位置,使得:对于每一个给出的点,都有一个距离它最近的咱们给出的点,距离是L,对于每个点,取L的max,而后让这个 max值最小的分配k个点的方案,不用输出方案,输出最小的Lmax就行
题解:二分Lmax, 而后对于给出的每个,都有一个最远控制它的大哥,大哥都有一个最远可以到的小弟,R, 也就是咱们获得了一个区间[l,r], 有n个这样的区间,咱们先去掉包含的,而后是一个对环的解决办法:找到一个最小的区间,暴力从它分开,开始枚举区间的起点,而后贪心的去作(跳) ,就能够o(n)的了.
B题.题意:给出n~1e5个点,每两个点连一条线,求全部的线的斜率的中位数.
题解:二分枚举中位数是谁.而后解法一:也就是每一个点都会有一个发射的东西向量,咱们不能暴力,因此要总体扫一遍,先排序,在扫描而后用树状数组单点修改区间查询. 能够拉直坐标轴更好作. 解法二:一个点对应一个直线,一条直线对应一个交点的横坐标,那么就是二分枚举横坐标左边的交点,作法是如今很远的地方标序号,而后在x = x0处看逆序对数.
D题.题意:给出n~1e5个A[],和B[],A是先手拿的权值,B是后手拿的权值,而后A会按照A最大,而后A一样大时B最大的贪心思惟拿,如今问B能拿的最大的B值得和.
题解:A的贪心是被动地,可是咱们发现B去取最大值得时候要受到一个相似于括号匹配,+1 -1, >= 0 的限制, 那么其实这个限制很简单, A在前1个挑1个,3个挑2个, 5个挑3个…… 而每次A都只能拿B值最小的,当前状况没拿的放到小头队列里,之后拿. 到这作也能够, 仍是A先拿,奇数A拿,偶数B拿,A拿就放在大头堆里面,B每次拿当前的和堆里最大的,不拿的也放在A的堆里.到着拿保证了B能够随便从A拿的拿回来.
F题.题意:400*400的格子,每一个格子有权值和颜色,颜色种类<10,问从1,1到n,n的权值和路径<=limit时,最小的颜色不一样种类,每次走只能向下和向右.
题解:实际上是最简单的题,二进制能够枚举颜色,可是开到数组里有些太大,咱们暴力枚举每次只可以用哪些颜色,不能的就不能走,而后dp. 注意初始化的细节.
H题.题意:给出n~40个三维向量,显然起点都是0,0给出一个k,求挑出k个向量,组成的的矢量和的向量的模最大是多少.
题解:首先是二维的时候:每两个向量可以搞出来一个中间的临界向量,弄出来n^2个,而后算他们之中的,而后暴力.那么三维的时候呢? 先看两个向量,弄出来一个半平面,而后n^2个半平面,将空间切成不少个东西,那么怎么弄临界的呢?考虑一个平面所相关的,其余的平面向它有一个交线,交线之间的就是要弄的值,而后再浮出来一个eps. 注意若是两个平面平行?怎么弄? 用特殊弄那?
I题.题意:给出n~6000个2*n维的向量,每一维都是1或者0,保证有n个1,那么求出一组&以后的1的个数大于等于n/2的一组.保证必定有这么一组.
题解:咱们用撒豆子的方法能够知道两个向量&一下大于等于n/2个1的概率是1/2. 那么多弄几回就行了.随机就行.
L题.题意:给出n~50000个线段,每一个线段长度都不同,都在1~c(100000)之间,问全部可以组成三角形的面积最小是多少.
题解:三角形首先假设a < b < c, 而后枚举d = c - b, 而后如今再找到一个大于d且尽可能小的a,小的目的有两个,留给b的可选空间大,面积最小,而后选有一组b b + d 的最小的大于a的b, 这个用bitset的 << 两次和 lowbit就能作了. 复杂度大约是2e8的.web

本文分享 CSDN - ruclion。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。数组

相关文章
相关标签/搜索