bzoj1293[SCOI2009]生日礼物 题意: 数轴上N个点,分为K种。可以有多个点出现在同一个位置上。需要一个最短区间使里面有K种点,求这个区间长度。N≤1000000 题解: 先排序,然后用两个指针分别指向区间两个端点,每次l指针往左移并更新答案直到区间里没有K种点,再把r指针向右移直到区 ...
分类:
其他好文 时间:
2016-07-20 21:12:26
阅读次数:
167
单调队列 用一个堆维护目前每个颜色在里面的点,每回取出队首点,并更新答案。一旦哪个颜色的点都被用完,跳出循环。 #include #include #include #include using namespace std; const int maxn = 1000000 + 10; const ... ...
分类:
其他好文 时间:
2016-05-29 06:15:59
阅读次数:
297
题目链接单调队列优化枚举起点找出每一种颜色在这个位置之后的第一个位置与这个位置距离的最大值。再找出每一个起点结果的最小值。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 const int inf=21474...
分类:
其他好文 时间:
2016-01-22 17:03:35
阅读次数:
116
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1293记录下每个点的颜色和上一个这一个颜色点的坐标,离散化之后枚举终点向前扫一遍。。#include#include#include#include#include#include#define ...
分类:
其他好文 时间:
2016-01-14 22:25:43
阅读次数:
253
题解:
首先我们把所有元素排一下序,然后枚举最小值,那么最大值是非严格单调上升的,就是一个珠子换成其后第一个的同颜色珠子时,将更新一下最大值,而最小珠子则刚好是其后第一个(反之则有空下来的永远用不上的珠子,不合逻辑。。2333)
结束。
代码:
狂野的long long 和开大数组啊……
#include
#include
#include
#include
#define...
分类:
其他好文 时间:
2015-06-05 15:53:28
阅读次数:
112
题目大意:给定一个数轴上n个点,每个点有一种颜色,一共k种颜色,求一个最短的区间,包含所有k种颜色
卡了一段时间0.0 一开始想二分答案啥的 后来发现数据范围太大写不了0.0 后来去找题解才发现尼玛真巧妙
维护一个堆 将每种颜色的第一个珠子加入堆 然后不断把最左侧的珠子取出,加入该种颜色的下一个 同时更新ans
果然这么大数据范围还是要用堆这种常数小的数据结构啊0.0
我手写了堆却开了ST...
分类:
其他好文 时间:
2014-10-21 17:48:09
阅读次数:
241
考虑poj3320尺取法的做法,与此题基本一样,但是此题的 位置 的范围到2^31 尺取法不可。将每种珠子所在的位置排序。每种珠子要维护一个指针,指到已经用到这个种类的哪个珠子。所以尺取法用堆优化,每次从堆中取出最小的,相当于尺取法的头指针向后移动。然后从每种珠子里向后取出一个位置(指针++)(已经...
分类:
其他好文 时间:
2014-09-13 17:02:25
阅读次数:
234
1293: [SCOI2009]生日礼物Time Limit:10 SecMemory Limit:162 MBSubmit:983Solved:526[Submit][Status]Description小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩珠有N个,分为K种。简单的说,可以将彩带...
分类:
其他好文 时间:
2014-08-23 09:54:30
阅读次数:
254