• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

RomanLin

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

合集-基础算法

前后缀分解
摘要:题型 给定一个数组(可以是高维度数组),若目标结果是求删掉数组中的一个元素后,剩余的全部元素进行运算的结果的最佳值,一般考虑前后缀分解。 若是求一个数组的子数组(子数组是指元素下标位置连续),也可以通过前后缀分解得到。任意一个子数组,都可以通过原数组减去一个前缀数组和一个后缀数组得到。 模板 for 阅读全文

posted @ 2024-05-01 20:12 RomanLin 阅读(158) 评论(0) 推荐(0)

【前缀和+开区间二分】codeforces 1187 B. Letters Shop
摘要:题意 第一行,输入一个正整数 \(n(1 \leq n \leq 2*10^5)\),代表字符串 \(s\) 的长度。 第二行,输入一个字符串 \(s\)。 第三行,输入一个正整数 \(m(1 \leq m \leq 5*10^4)\),代表接下来要输入的询问次数,对于每次询问:输入一个字符串 \( 阅读全文

posted @ 2024-10-07 15:37 RomanLin 阅读(33) 评论(0) 推荐(0)

【字符串哈希+二分】AcWing 3508. 最长公共子串
摘要:题解 首先思考暴力枚举长度为 \(len∈[1, min(strlen(s), strlen(t))]\),最差情况下为字符串 \(s\) 和字符串 \(t\) 全为长度为 \(10000\) 的全英文字符串,时间复杂度: \(O(n^2)\),显然会超时。 容易证明的是:若存在一个长度为 \(x\ 阅读全文

posted @ 2024-11-19 23:17 RomanLin 阅读(67) 评论(0) 推荐(0)

【二分+前缀和+后缀和】codeforces 2026 D. Sums of Segments
摘要:题目 https://codeforces.com/problemset/problem/2026/D 题意 第一行输入一个正整数 \(n(1 \leq n \leq 3e5)\),第二行输入 \(n\) 个整数 \(a_1, a_2, ..., a_i, ..., a_n(-10 \leq a_i 阅读全文

posted @ 2024-11-28 21:55 RomanLin 阅读(144) 评论(0) 推荐(2)

【滑动窗口】codeforces 1290 A. Mind Control
摘要:题意 第一行输入一个正整数 \(T(1 \leq T \leq 1000)\),表示共有 \(T\) 组测试用例。对于每一组测试用例: 第一行输入三个正整数 \(n, m, k(1 \leq m \leq n \leq 3500, 0 \leq k \leq n - 1)\),且保证 \(n\) 之 阅读全文

posted @ 2024-12-06 23:13 RomanLin 阅读(32) 评论(0) 推荐(0)

【三分】AcWing 3666. 士兵排阵
摘要:前言 对于一个在定义域上极值点的函数,可以求取该函数在定义域上的极值和最值。对于一个凸函数,其极值点对应的函数值就是极小值;对于一个凹函数,其极值点对应的函数就是极大值。且函数若在定义域内有且仅有一个极值点,那么极值点也是最值点。函数的最值,要么出现在极值点,要么出现在定义域上的端点。 对于三分法, 阅读全文

posted @ 2024-12-28 09:54 RomanLin 阅读(54) 评论(0) 推荐(0)

【带权前缀和】codeforces 2044 H. Hard Demon Problem
摘要:题目 https://codeforces.com/problemset/problem/2044/H 题意 第一行,输入一个正整数 \(T(1 \leq T \leq 1000)\),代表总共 \(T\) 组测试用例。对于每组测试用例:第一行输入两个正整数 \(n, q(1 \leq n \leq 阅读全文

posted @ 2025-01-04 16:55 RomanLin 阅读(92) 评论(0) 推荐(0)

【区间合并+贡献法】codeforces 1789 C. Serval and Toxel's Arrays
摘要:题目 https://codeforces.com/problemset/problem/1789/C 题意 第一行输入一个正整数 \(T(1 \leq T \leq 10^4)\),代表 \(T\) 组测试用例。 对于每组测试用例:第一行输入两个正整数 \(n, m(1 \leq n, m \le 阅读全文

posted @ 2025-01-09 22:41 RomanLin 阅读(52) 评论(0) 推荐(0)

【离线+单调栈】AtCoder ABC379 F. Buildings 2
摘要:题目 https://atcoder.jp/contests/abc379/tasks/abc379_f 题意 第一行输入两个正整数 \(n, q(2 \leq n \leq 2 \times 10^5, 1 \leq q \leq 2 \times 10^5)\); 第二行输入长度为 \(n\) 阅读全文

posted @ 2025-01-18 17:40 RomanLin 阅读(69) 评论(0) 推荐(0)

【前后缀分解】AtCoder ABC393 D.Swap to Gather
摘要:题目 https://atcoder.jp/contests/abc393/tasks/abc393_d 题意 给定一个长为 \(n\) 的 \(01\) 字符串 \(s\),可以执行任意次以下操作: 选择两个相邻的下标,交换这两个位置上的字符,每次操作的代价为 \(1\)。 求让全部字符 \(1\ 阅读全文

posted @ 2025-02-22 22:58 RomanLin 阅读(56) 评论(0) 推荐(0)

【摩尔投票】LeetCode 229. 多数元素 II
摘要:题目 https://leetcode.cn/problems/majority-element-ii/description/ 题解 在一个长为 \(n\) 的数组中,如果有一个数的出现次数会超过 \(\frac{n}{2}\) 次,用多阵营厮杀的观念来看待,超过 \(\frac{n}{2}\) 阅读全文

posted @ 2025-03-08 18:20 RomanLin 阅读(24) 评论(0) 推荐(0)

【前缀和+差分+二分】LeetCode 2528. 最大化城市的最小电量
摘要:题目 https://leetcode.cn/problems/maximize-the-minimum-powered-city/description/ 题解 以stations = [1,2,4,5,0], r = 1, k = 2为测试用例进行讲解,从第 1 座城市到第 5 座城市对各个城市 阅读全文

posted @ 2025-11-15 18:04 RomanLin 阅读(20) 评论(0) 推荐(0)

【二维前缀和与差分】LeetCode 2536. 子矩阵元素加 1
摘要:题目 https://leetcode.cn/problems/increment-submatrices-by-one/description/ 题解 这是一道二维差分的典题,但是为了实现二维差分,我们首先需要掌握前置知识二维前缀和。接下来我先向大家介绍二维前缀和的意义、定义和用法: 二维前缀和的 阅读全文

posted @ 2025-11-30 20:59 RomanLin 阅读(27) 评论(0) 推荐(0)

【二维单调队列】AcWing 4964. 子矩阵
摘要:前言 二维单调队列简介 二维单调队列是一维单调队列在二维矩阵上的扩展,适用于二维滑动窗口的最值问题,可以在 \(O(m \times n)\) 的时间复杂度内求出矩阵中每个固定大小子矩阵的最值。 二维单调队列的基本思想 二维单调队列的实现通常分为两步: 行方向的一维单调队列:对每一行使用单调队列,求 阅读全文

posted @ 2026-01-11 16:48 RomanLin 阅读(13) 评论(0) 推荐(0)

【浮点数二分】LeetCode 3453. 分割正方形 I
摘要:前言 零点定理:如果函数 \(f(x)\) 在闭区间 \([a, b]\) 上连续,且 \(f(a) \times f(b) < 0\)(即函数在两端点值异号),则在开区间 \((a, b)\) 内至少存在一点 \(c\),使得 \(f(c) = 0\)。 零点定理是连续函数的一个重要性质,也是二分 阅读全文

posted @ 2026-01-20 00:21 RomanLin 阅读(9) 评论(0) 推荐(0)

 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3