题目传送门题意:给两串字符串,操作1:替换其中一个字符串的某个位置的字符 操作2:查询从p开始相等的最长连续长度分析:树状数组可以维护一个区间内公共长度(连续)的情况,查询时用二分查找最远的端点即可。还可以用线段树去做,线段树能处理的问题很多,这题只要往右区间合并就行了。收获:1.线段树的区间合并又...
分类:
编程语言 时间:
2015-08-26 17:07:20
阅读次数:
184
题意:给一个n,代表n次操作,接下来每次操作表示把[l,r]区间的线段涂成k的颜色其中,l,r,k的范围都是0到8000
分析:其实就是拿线段树维护一段区间的颜色,总体用到的是线段树的区间更新把,但是会给人一种区间合并的错觉
注意:这题比较坑的是千万不能拿n建树,不然就会segmentation fault,必须拿8000建树,也就是树是固定的
代码:
#inclu...
分类:
其他好文 时间:
2015-08-17 17:26:14
阅读次数:
137
题意 模拟内存申请 有n个内存单元 有以下4种操作
Reset 将n个内存单元全部清空
New x 申请一个长度为x的连续内存块 申请成功就输出左端
Free x 将x所在的内存块空间释放 释放成功输出释放的内存始末位置
Get x 输出第x个内存块的起始位置
Reset 和 New 都是基本的区间合并知识 比较简单 Free和Get需要知道内层块的...
分类:
其他好文 时间:
2015-08-16 23:15:37
阅读次数:
97
题意:给一个n和m,表示n个房间,m次操作,操作类型有2种,一种把求连续未租出的房间数有d个的最小的最左边的房间号,另一个操作时把从x到x+d-1的房间号收回。
分析:这是一个区间合并的典型应用,基本只要套套模板就好了
下面是对区间合并的解释:
up函数:当修改完此时的区间时,为了维护该区间上面区间值的正确性,向上回朔更新上面区间的值
down函数:把延迟标记下传,并修改下...
分类:
其他好文 时间:
2015-08-15 14:57:24
阅读次数:
106
#include
using namespace std;
#define N 100100
int a[N];
struct {
int left,right,c;
int ln,rn;
int ls,rs,ms;
}b[N*4];
void pushup(int i){
b[i].ls=b[i*2].ls; b[i].rs=b[2*i+1].rs;
b[...
分类:
其他好文 时间:
2015-08-14 13:52:27
阅读次数:
120
线段树,区间合并
最长上升子序列(严格上升)
#include
#define maxn 100010
using namespace std;
int n,m;
int a,b;
struct stu
{
int l,r,mid;
int ll,rl,ml;
int d()
{
return r-l+1;
}
};
stu mapp[maxn*4];
int num[maxn]...
分类:
其他好文 时间:
2015-08-14 11:51:38
阅读次数:
166
http://poj.org/problem?id=3667宾馆有n个房间编号1到n都为空房,然后m个询问,当输入第一个为1的时候,代表要住进x个连续的房间,输入房间号最小的数,如果没有输出0.当第一个数为2的时候,将从x号到y号的房间又变为空房,没有输出与区间有关想想用线段树可不可以解决,就像是涂...
分类:
其他好文 时间:
2015-08-14 11:28:08
阅读次数:
134
线段树之区间合并有一个线段,从1到n,下面m个操作,操作分两个类型,以1开头的是查询操作,以2开头的是更新操作
1 w 表示在总区间内查询一个长度为w的可用区间,并且要最靠左,能找到的话返回这个区间的左端点并占用了这个区间,找不到返回0
线段树之区间合并
接近2个月没怎么学算法刷题了,也落下了很多东西,慢慢补吧,明天开始二维线段树
#include
#define...
分类:
其他好文 时间:
2015-08-13 06:32:04
阅读次数:
135
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3397题意:给定n个数,由0,1构成。共有5种操作。每个操作输入3个数,op,a,b。
op == 0,将区间[a,b]赋值为0;
op == 1,将区间[a,b]赋值为1;
op == 2,将区间[a,b]内的01反转;
op == 3,查询区间[a,b]中1的个数;
op == 4,查询区间[a,b]...
分类:
其他好文 时间:
2015-08-12 23:35:42
阅读次数:
175
LCIS
Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5319 Accepted Submission(s): 2361
Problem Description
Given n integers.
Yo...
分类:
其他好文 时间:
2015-08-12 16:48:46
阅读次数:
139