题目整理

1.
OJ题号:
POJ1743
简单题意:
给你一个长为n的数字序列,要你求出该序列中最长的满足下面要求的序列长度:原序列中存在不重叠的两个序列,这两个序列长度相同且将第一个序列的所有数字加上某个常数可以得到第二个序列.
正解思路:
首先,根据height数组,将后缀分成若干组,使得每组后缀中,后缀之间的height值不小于k。这样分组之后,不难看出,如果某组后缀数量大于1,那么它们之中存在一个公共前缀,其长度为它们之间的height值的最小值。而我们分组之后,每组后缀之间height值的最小值大于等于k。所以,后缀数大于1的分组中,有可能存在满足题目限制条件的长度不小于k的子串。只要判断满足题目限制条件成立,那么说明存在长度至少为k的合法子串。
对于本题,限制条件是不重叠,判断的方法是,一组后缀中,起始位置最大的后缀的起始位置减去起始位置最小的后缀的起始位置>=k。满足这个条件的话,那么这两个后缀的公共前缀不但出现两次,而且出现两次的起始位置间隔大于等于k,所以不会重叠。
详细链接:
https://blog.csdn.net/u013480600/article/details/23871765
2.
OJ题号
POJ2528
简单题意:
n个登高的海报,依次贴在海报墙上,给n个海报张贴的区间,问贴完后可以看见多少张海报,能看见部分也算。
正解思路:
首先给出的区间范围很大,要先离散化,将大区间化成小区间。然后倒序贴海报,如果贴海报的区间有海报了就说明这张海报被完全盖住了,就不计数了,否则进行计数,这样最后计数的结果就是可见海报数量了。
详细链接:
https://blog.csdn.net/weixin_43438700/article/details/101034304
3.
OJ题号
HDU 3450
简单题意
有一个由n个数构成的序列,求其中有几个完美子序列。
完美子序列要满足相邻两元素之差不大于d,且序列中元素不少于两个
正解思路
遍历序列中的每一个元素,求出以该元素为末尾元素的完美子序列个数。
假设该元素值为k,则以该元素为末尾元素的完美子序列个数 = 该元素前值在[k-d,k+d]区间内的元素个数 + 以这些元素为末尾元素的完美子序列个数
然后前面的个数已经求过了,就可以直接用,用区间求和,然后更新就行了,就是用线段树或树状数组
详细链接
https://blog.csdn.net/weixin_43438700/article/details/100101151
4.
OJ题号
POJ 1151
简单题意
在二维坐标系上,给出多个矩形的左下以及右上坐标,求出所有矩形构成的图形的面积。
正解思路
扫描线问题,用线段树维护,注意离散化。
详细链接
https://blog.csdn.net/weixin_43438700/article/details/99672757
5.
题号
HDU 1198
简单题意
给你一个N*M的矩阵,由下面11种格子组成,每个格子互联的部分不同(比如A如果放在C正下面,那么A与C是连通的),问你所给矩阵一共有几个连通分量。
正解思路
这题特点是二维并查集。虽然一维也可以做,但是用二维比较直观方便一些。这题本身难,只要把没个方块各个方向是不是连通的表示出来就行了。
详细链接
https://blog.csdn.net/u013480600/article/details/20799843

6
题号
BZOJ 3261
简单题意:
给定一个非负整数序列{a},初始长度为N。
有M个操作,有以下两种操作类型:
1、Ax:添加操作,表示在序列末尾添加一个数x,序列的长度N+1。
2、Qlrx:询问操作,你需要找到一个位置p,满足l<=p<=r,使得:
a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出最大是多少。
正解思路
维护一个可持久化Trie,并添加节点信息,确保访问位置在区间内,将每个数看成二进制序列,查询时优先访问与val的每一位相反的指针。
详细链接
https://blog.csdn.net/weixin_43438700/article/details/102412359
7
题号:
poj3294
简单题意:
求一个最长字串,要求这个子串在超过一半的串中出现过
正解思路:
求后缀数组,二分字串长度,找最大字串长度,并记录子串的位置。
详细链接:
https://blog.csdn.net/weixin_43438700/article/details/102541470
8
题号
URAL 1517
简单题意:
求两个字符串的最长公共连续子串
正解思路
连接连个字符串,求出后缀数组和height数组,求出一个公共子串在使其在两个字符串中。
详细链接
https://blog.csdn.net/weixin_43438700/article/details/102550439
9
题号
51nod1277
简单题意
统计字符串不同长度前缀长串的长度以及次数。输出长度*次数的最大值。
正解思路
通过求next数组 和 递归next数组的方法记录字符串出现的次数。
详细链接:
https://blog.csdn.net/weixin_43438700/article/details/102596767
10
题目
Rikka with Cake
简单题意
从任意点任意四个中的一个方向切蛋糕,问切完后切了多少块
正解思路
答案为交点数加一,所以用线段树+离散化求节点数即可
详细链接
https://blog.csdn.net/weixin_43438700/article/details/103096139

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩辕青山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值