题意: 有n个地鼠,m个CD碟,每个CD碟有一个影响范围,范围内的地鼠都会被吵到,每次有一个操作就是移动CD碟,然后求每次被影响的地鼠有多少只。解法: 线段树做。我们只关注地鼠有没有被吵到就可以了,之前我还去把所有可能移到的位置都存下来离散化一下,然后维护也维护错了。一堆bug,真是想多了。线段树维...
分类:
其他好文 时间:
2014-11-14 01:26:44
阅读次数:
241
题意: 有三种颜色的矩形n个,不同颜色的矩形重叠会生成不同的颜色,总共有R,G,B,RG,RB,GB,RGB 7种颜色,问7种颜色每种颜色的面积。解法: 很容易想到线段树扫描线求矩形面积并,但是如何维护每种颜色的长度着实让我伤透了脑筋。后来看了一位朋友的题解,才幡然醒悟。开始想到了用二进制表示颜色,...
分类:
其他好文 时间:
2014-11-13 23:56:58
阅读次数:
257
poj 2528 Mayor's posters(动态线段树)
题目大意:
给定一个 1 ~ 10000000 的区间,然后有N次操作(N <= 10000),第i次操作是将 l~r 区间覆盖为i。问最后一共有多少种有颜色。
解题思路:
一开始想到了离散化,但是想了一想感觉有点麻烦 然后就问专职搞数据结构的队友。然后他说了 动态线段树。思路如下:
定义一个ID。然后 根节点1表示掌管1-MAXN颜色的区间。然后每次都是动态的建树。当一个区间的左子区间还不存在时。建立它,并且记录下每个区间的左子区间和右子区间...
分类:
其他好文 时间:
2014-11-09 18:11:55
阅读次数:
200
http://acm.hdu.edu.cn/showproblem.php?pid=4288開始的时候,果断TLE,做的方法是,线段树上只维护%5==3的坐标,比方1 2 3 4 5 6 7 假设删除第三个数,就将3,6的位置全+1,就是向右偏移以为,可是求和还是非常慢,所以即使10秒,还是TLE。...
分类:
其他好文 时间:
2014-11-09 16:31:38
阅读次数:
194
题目链接:hdu5101 Select
题目大意:N和K,给定若干组数,要从从不同组中选出连个数和大于K,问说有多少种组成方案。
解题思路:树状数组维护,将所有的数离散化掉对应成树状数组的下标,每次先计算一组,然后再将该组的元素插入到
树状数组中。
#include
#include
#include
using namespace std;
typedef long ...
分类:
编程语言 时间:
2014-11-08 23:39:29
阅读次数:
301
题意:n 组,每组有一些值,求 在不同的两组中每组选一个使值的和大于k的方法数。解法:n * Cnt[n] #include #include #include #include #include #define lll __int64using namespace std;#define N 10...
分类:
编程语言 时间:
2014-11-08 23:35:38
阅读次数:
294
给出N个矩形,M次询问
每次询问给出R个,问这R个矩形围成的面积
经典扫面线求面积并,对每次询问的R个点离散化一下
#include "stdio.h"
#include "string.h"
#include "algorithm"
#include "map"
using namespace std;
mapmp;
struct P
{
int x1,y1,x2,y2...
分类:
其他好文 时间:
2014-11-08 15:17:50
阅读次数:
169
本来 我是想直接开2个计数数组 存下 行 列各自的元素个数的..可是 数据达到了 10^9 但是数据个数 只有10^5 虽然可以考虑用 离散化...但我想先map试下 毕竟 离散化烦~关于multimap的使用 和map还是有点差别的..但是 我们单纯地只是使用 stl中的函数的话 还是不存在什么难...
分类:
其他好文 时间:
2014-11-06 10:39:04
阅读次数:
176
分块,离散化,预处理出:①前i块中x出现的次数(差分);②第i块到第j块中的众数是谁,出现了多少次。询问的时候,对于整块的部分直接获得答案;对于零散的部分,暴力统计每个数出现的次数,加上差分的结果,尝试更新ans。 1 #include 2 #include 3 #include 4 #in...
分类:
其他好文 时间:
2014-11-05 21:25:20
阅读次数:
195