记2018.2.27 NOIP班-数据结构(9)

t1:
题意简述:给你 n 个线性函数 fi=kix+bi,支持单点修改和区间查询 fr(fr1(fl(x)))mod (109+7)
然后看了题目我就想是个线段树咯,推了一下发现 fr(fl(x))=(kl+kr)x+bl×kr+br 也是一个线性函数,然后又满足结合率嘛就是区间加法。然后就套了个线段树板子调了调一遍过了。
注意点:模的细节注意下,然后写struct的时候一定要记得写构造函数啊这是个好习惯。
source:FJWC2016
t2:
题意简述:给你 n 个字符串,定义两个字符串相似为去掉相同一位后相等,求相似的对数。
然后第一想法就是枚举删除的位数然后寻找相等对数嘛。。。寻找的方法当然是字符串排序,于是肯定TLE啊。
我们发现字符串排序太复杂了,于是我们把字符串哈希后再去处理就行了。
注意点:哈希了以后一定要记得模啊不模的话开个long long也行啊反正别int真的太容易被卡了。。。
(我就是开int才30开了long long也没模就ac了)
source:CTSC2014
t3:
题意简述:给你一个长度为 n 的排列 P ,求有多少连续的从 l r 的正整数可以表示为 P 里面两段连续区间并。
然后看了下题目不会做啊,,,写了个五方的暴力。。后来发现可以写一个平方的暴力然后来不及就错了。。
正解还不会就下次补题解吧,讲讲暴力的做法。
可以观察到题目问的是有多少区间 [l,r] 满足题意,因此我们考虑枚举区间 [l,r] ,然后判断其在 P 中是否为两个(或一个)区间,这样的复杂度是 O(n3) 的,也只有 10 分。但是由于我们枚举的时候,其实是在确定 l 的情况下,将 [l,r] 不断从右侧加入一个数,因此我们可以维护一个bool数组表示 [l,r] 中的数字在 P 里出现在那些位置。然后每加入一个数时,判断其两侧的数,如果两侧的数都不存在则段数 +1,都存在段数 1 ,否则段数不变。最后统计段数小于三的区间 [l,r] 即可。复杂度 O(n2)
source:FJWC2017

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值