就这破题目坑了我一个大晚上,直到今天一觉醒过来才搞定,原因之一:这题目的题意真的是太狗了,还不如直接看着案例猜来的快啊,
题意:给了你一些区间,x,y,第三个参数w是效率,代表这段时间他的单位时间效率,效率总和就是 (y-x)*w,然后有的时间段会被重复啊,比如前面给了1,4,1,后面又给了2,4,3他们为了是的时间段1,4的效率总和最大肯定是选择 2,4区间的效率值选择3,意思就是后面出现更...
分类:
其他好文 时间:
2014-07-03 15:40:39
阅读次数:
222
开始集训了 =-=估计也就1 2星期的热度吧 自己 好好提高就是了 ~今天 起晚了....来做的时候 前面3题很水 看到第4个 很明显 线段树 不会手写了..----碎碎念线段树 题目类型 貌似 一般分成单点更新 区间查询区间更新 单点查询区间更新 区间查询线段树的种类又分成 -- 点树 && (忘...
分类:
其他好文 时间:
2014-07-02 22:24:20
阅读次数:
306
题目描述:
长度为L个单位的画板,有T种不同的颜料,现要求按序做O个操作,操作分两种:
1.“C A B C”,即将A到B之间的区域涂上颜色C
2.“P A B”,查询[A,B]区域内出现的颜色种类
出现操作2时,请输出答案
PS:初始状态下画板颜色为1
一开始没有想那么好,用int整型位移来代替颜色,还是使用了最传统的bool color[来记录,可是不知道错在了哪里,
...
分类:
其他好文 时间:
2014-07-01 07:25:22
阅读次数:
240
题意: 给你三个数:L (1
有T种颜色(1~T),然后有O个操作,初始板1~L的颜色为1,"C A B C"表示在区间A,B图上C颜色, "P
A B" 表示询问
A,B区间有几种不同的颜色。
#include
#include
#include
#include
#include
#define M 100000
#define L...
分类:
其他好文 时间:
2014-06-30 11:07:40
阅读次数:
164
没想到线段树的基本用法这么长时间没写了还没有忘,1A的感觉还是很爽的。
题目大意:
中文题,点此查看题目。
解题思路:
线段树的区间更新与查询。
lazy标记的使用。
当需要返回区间多个值时可以使用引用参数。
下面是代码:
#include
#include
#include
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-06-16 19:40:08
阅读次数:
145
线段树记录当前区间是哪一个长方形在覆盖。
然后根据每一条线更新线段树。
如果是左边的边,那么把区间更新成当前长方形。
否则,把区间更新成当前长方形的前驱。
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/STACK:1024000000,102...
分类:
其他好文 时间:
2014-06-16 11:26:00
阅读次数:
161
1.易知,树上两点的距离dis[u][v] = D[u]+D[v]-2*D[lca(u,v)] (D为节点到根节点的距离)2.某条边权值一旦改变,将会影响所有以v为根的子树上的节点到根节点的距离,很明显,DFS一遍后以v为根的子树在DFS序列中是连续的一段,及转化为区间更新问题,可以用树状数组。做法...
分类:
其他好文 时间:
2014-06-15 11:42:02
阅读次数:
213
题目来源:POJ 2155 Matrix
题意:开始矩阵都是0 2种操作 把某个子矩阵翻转 0变1 1变0 查询x y 是0还是1
思路:树状数组 记录翻转次数就行 奇数次是1 偶数次是0
这题是区间更新 点查询 向上求和 向下更新 而且是二维的
#include
#include
using namespace std;
const int maxn = 1300;
i...
分类:
其他好文 时间:
2014-06-05 01:59:00
阅读次数:
287
记录3个变量。
sum[i]:当前区间被覆盖2次及两次以上的面积。
num[i]:当前区间被覆盖1次及一次以上的面积。
cover[i]:覆盖的lazy标记。
对于每一个区间.
更新操作如下:
void push_up(int_now)
{
if(cover[rt]==0)
{
num[rt]=num[rt<<1]+num[rt<<1|1];
...
分类:
其他好文 时间:
2014-05-31 17:58:57
阅读次数:
296