题意:二维平面上 N 个高度为 Hi 建筑物,M次询问,每次询问输出 位于坐标(x ,y)左下角(也就是xi 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int maxn = 3e4+10;...
分类:
其他好文 时间:
2014-11-22 18:51:10
阅读次数:
201
题意:在几个区间里面,挑选出几个数字组成一个集合,使得每个区间都至少有两个数字在这个集合里面,求这个集合的最少数字个数。题解:贪心法,先对区间排序下,以右端点排序,把每个区间扫一遍过去,看区间内有几个元素在当前集合中。 1 #include 2 #include 3 #include 4 #i...
分类:
其他好文 时间:
2014-11-22 15:56:57
阅读次数:
168
【题目简述】:题目的大概意思就是,现在要在个个房间之间搬桌子,但是只有一条很窄的走廊,每次只能过一个桌子,而且每搬一个桌子要10分钟,所以如果我们要搬的任意两个桌子之间的起点与终点有重合的地方,就要再等10分钟。然后输入要搬几个桌子以及要搬的每个桌子是从哪个房间到哪个房间,问我们最短需要花多少时间。
【分析】:如果区间有重合就要加上额外的10分钟,所以我们只需要算出在哪一段走廊上重合的次数最多,...
分类:
其他好文 时间:
2014-11-22 14:43:53
阅读次数:
146
这题说的是给了一个二进制数R , 计算出 在[0,R) 区间内的数, 二进制中有n个1 个和n#include #include #include using namespace std;const int maxn =1005;typedef long long ll;const ll mod=1...
分类:
其他好文 时间:
2014-11-22 10:28:13
阅读次数:
162
[转载]一篇还算可以的文章,关于可持久化线段树http://finaltheory.info/?p=249无修改的区间第K大我们先考虑简化的问题:我们要询问整个区间内的第K大。这样我们对值域建线段树,每个节点记录这个区间所包含的元素个数,建树和查询时的区间范围用递归参数传递,然后用二叉查找树的询问方...
分类:
其他好文 时间:
2014-11-21 23:11:31
阅读次数:
290
题目大意:给定一些形如ax+b>c的不等式,支持插入和修改,以及询问当x=k时有多少不等式成立
将不等式变形 可以得到每个不等式成立时x的取值范围 在树状数组上统计即可
注意事项:
1.a可以等于0 此时若b>c x∈R 若b
2.x的取值范围可能超过[-1000000,1000000]
3.由于有负数 所以区间修改时左右端点都要加上1000001 若加上1000000则死循环
4.小...
分类:
编程语言 时间:
2014-11-21 16:24:46
阅读次数:
353
看书、思考、写代码!!!
/*********************************
* copyright@hustyangju
* blog: http://blog.csdn.net/hustyangju
* 题目:快速排序和随机快速排序
* 思路:采用分治+原址排序,分裂函数将区间分为三个子区间:主元区间,再在主元旁边的两个子区间递归调用排序
* 分裂函数一...
分类:
编程语言 时间:
2014-11-21 16:13:23
阅读次数:
188
题意:查找区间内不同数字的个数。两种做法,一种是 树状数组离线,另一种就是主席树。树状数组离线操作的链接http://www.cnblogs.com/oneshot/p/4110415.html两种方法思路差不多,都是扫一遍,如果这个数曾经出现过那么就 在上次位置-1,如果没有出现过就在 当前位置+...
分类:
其他好文 时间:
2014-11-21 15:57:34
阅读次数:
211
题目大意:给定一个序列,多次询问区间内出现两次以上的数的数量
n
考虑对于每个区间的左端点 对这个区间有贡献的数是从这个端点开始所有第二次出现的数
于是我们将区间按照左端点排序 然后从左向右扫
令next[i]为i位置上的数下一次出现的位置
初始将所有第二次出现的数加入树状数组
然后每删除一个点i 将next[i]从树状数组中删除 然后将next[next[i]]加入树状数组
然后...
分类:
编程语言 时间:
2014-11-21 14:29:13
阅读次数:
250
1.java的Random是伪随机,在一个区间会等几率生成随机数。利用这个可实现概率问题: 实现60%几率执行A程序,30%几率执行B程序,10%几率执行C程序。 Random rnd = new Random();
double d = rnd.nextDouble();
if...
分类:
编程语言 时间:
2014-11-21 10:53:05
阅读次数:
209