7.13模拟赛总结

属于被吊打了

老实说 感觉今天这场特别noi (应该比较day2吧

早上过来状态特别不好 昨晚做了一晚上梦 睡眠质量特别糟糕) 感觉在梦里过了好几年

发现了自己在一些乱搞上的不足)

时间安排

8.00-10.00

看了一会T1 发现自己会 反过来的版本(是不是可以出题 写博客的时候网站上不去 寄!)

然后继续想T1 感觉应该是相对可做的一道

然后看T2 一眼过去没有想法

又看了看T3 想了一会 会一个栈的贪心维护版本 复杂度 O ( n m l o g n ) O(nmlogn) O(nmlogn)

写写写调调调

10.00-10.40

思考了一会T2 开始写 写写调调但还是犯错了)

10.40-…

又想了一会T1 真的没有任何想法(流泪) 感觉很无奈 只能先打了暴力

题目分析

T1

硬枚举

upd

巧妙做法:枚举 T T T S S S 的哪个字串形成最长的匹配 然后枚举下一个失配是什么字符 最后kmp check一下

为了去重 考虑把所有字串放到trie上 复杂度是 n 3 n^3 n3

那么怎么优化呢

比如 A A B C A     A A B C B AABCA~~~AABCB AABCA   AABCB 两个字符串 只有最后一位不同 那么S对他们做kmp的反应的改变应该是很小的

所以我们考虑一边在trie上dfs一边做kmp

感觉缺少一些对基础算法的高妙理解 就是灵活运用 有机会的话想找一些这种题练 就并没有用很难的算法 但转换很巧妙

T2

只会n=1 n=2

upd

好像是有二分性质 不好意思 没听懂)

这个题犯了好几个错:

  1. 没开LL
  2. 有一个部分分输出的内容打错了
  3. sort之后 答案也要sort)

T3

考虑把所有区间内元素按权值排序 贪心的考虑 肯定是先向前面没补的位置填 再填后面

搞个栈模拟一下

upd

这个题做的很不好的就是 我的暴力做法没有可扩展性

以后需要想一个可扩展的暴力做法

如果能写出来那个 n n   l o g n n\sqrt n~logn nn  logn 的莫队+线段树做法就比较好

正解的一个巧妙思路是先证明答案在区间内有单调性

然后在用一个线段树维护目前所有更新的询问(所有询问互不包含)

当把一个询问解决后 再把新的 满足要求的询问放上去

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值