码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Hash(哈希)选做


    洛谷 P3501 [POI2010]ANT-Antisymmetry

    由题意得,“反对称”字符串长度一定为偶数。

    原串正着 Hash,取反后的串倒着 Hash,然后枚举中间点,二分长度。

    洛谷 P2852 [USACO06DEC]Milk Patterns G

    显然答案具有单调性,二分最大长度,Hash + 排序 O ( n log ⁡ n ) O(n \log n) O(nlogn) 算出现次数。

    时间复杂度 O ( n log ⁡ 2 n ) O(n \log^2 n) O(nlog2n)。

    洛谷 P2757 [国家集训队]等差子序列

    L e n ≥ 3 Len\geq3 Len≥3,所以只需找到 L e n = 3 Len=3 Len=3 的等差子序列即可。枚举中项,对于每一个 A i A_i Ai​ 判断是否存在 A i + k A_i+k Ai​+k 和 A i − k A_i-k Ai​−k 在 A i A_i Ai​ 的异侧。

    建立一个长为 N N N 的序列 X X X,初始全为 0 0 0,从左到右扫一遍 { A i } \{A_i\} {Ai​},每次将 X A i X_{A_i} XAi​​ 设为 1 1 1,那么如果不存在 A i + k A_i+k Ai​+k 和 A i − k A_i-k Ai​−k 在 A i A_i Ai​ 的异侧,意味着所有的 A i + k A_i+k Ai​+k 和 A i − k A_i-k Ai​−k 已经被加入到 X X X 中,那么此时以 X A i X_{A_i} XAi​​ 为中点,两端不超过边界的 X X X 的子串(必定是前缀或后缀)一定为回文串。

    回文串可以使用 Hash 判断,因为 Hash 也算序列问题,所以考虑用线段树维护序列 X X X 的 Hash。

    洛谷 P8023 [ONTAK2015] Tasowanie

    直接归并会出现的问题是,因为序列不是有序的,所以无法处理两序列当前位置的值相同的情况。

    先考虑如何暴力解决这个问题,如果 a i = b j a_i=b_j ai​=bj​,则判断 a i + 1 a_{i+1} ai+1​ 是否等于 b j + 1 b_{j+1} bj+1​ ,如果不相等,则取小的一列更优,如果相等,则继续判断 a i + 2 a_{i+2} ai+2​ 与 b j + 2 b_{j+2} bj+2​ 是否相等,以此类推。

    暴力的时间复杂度直接挂到了 O ( ( n + m ) 2 ) O((n+m)^2) O((n+m)2),问题在于暴力判断 a i a_i ai​ 与 b j b_j bj​ 之后相等的值。考虑二分其后值相等的序列长度,Hash 判断序列是否相等,则复杂度优化到 O ( ( n + m ) log ⁡ ( n + m ) ) O((n+m)\log(n+m)) O((n+m)log(n+m))。

    洛谷 P2601 [ZJOI2009]对称的正方形

    经典题,二维回文。

    与一维回文类比,使用二维 Hash,算三个 Hash 判断上下和左右对称,枚举中间点并二分正方形边长。

  • 相关阅读:
    华为云云耀云服务器L实例评测|基于L实例使用Docker部署MySQL服务并连接MySQL—phpMyAdmin管理工具
    [机缘参悟-110] :一个IT人对面具的理解:职业面具戴久了,就会忘记原本真实的自己,一个人是忠于职位,还是忠于内心?
    重启某个节点、重启电脑服务器后,kubernetes无法运行,k8s无法运行
    使用 pam module 与 seccomp 技术禁止用户加载内核模块
    1. Springboot集成Mybatis
    SpringMVC项目整合SSM统一结果封装
    程序员面试:未来五年的规划是怎样的?
    04 运算符
    【AutoSAR CAN】01 - CAN 标识符(CanID)长度配置
    Linux 安全 - 扩展属性xattr
  • 原文地址:https://blog.csdn.net/Wu_while/article/details/127572994
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号