题解 算法
day13 代码随想录算法训练营 239. 滑动窗口最大值
题目:239. 滑动窗口最大值 我的感悟: 来难度了,有点意思, 理解难点: 需要实现自定义队列, 看了国外的解题思路和其他的回答,感觉还是卡尔的思路,更有意思。 实现队列: pop只弹出左边边界且左边界为最大值的时候 push 要维护队列里的大到小的单调性。把队尾小的都卷走 front查询最大值 ......
算法期末复习笔记
分治 基本概念 基本思想 将原始问题分解为若干子问题 逐个解决各个子问题 得到原始问题的解 情况分类 原始问题的解在分解出的子问题中 原始问题的解需要各个子问题的解再经过综合处理得到 如果分解出的子问题和原始问题类型相同,就可以用递归的方法做了 算法示例 查找最大值最小值 O(logn) 二分搜索 ......
KMP 算法
Question: Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haysta ......
[Noi Online #1 入门组] 跑步 题解
[Noi Online #1 入门组] 跑步 \(m = \sqrt{n}+1\) 对于大于 \(m\) 的数,采用另外一种方式 \(x > m\) --> 其数量 \(< m\) 记 \(g[i][j]\) 表示用了 \(i\) 个大于等于 \(m\) 的数 和为 \(j\) 的方案数 初始状态 ......
计算器算法
目录思路最简单的计算器(好像也不简单,因为有*/)224772 困难计算器 可以通解224 227 和上面的题 先把力扣上5道计算器的题目干了,主要使用双栈法 思路 用一个栈ops存操作,用一个栈nums存数字 然后从前往后做,对遍历到的字符做分情况讨论: 空格 : 跳过 ( : 直接加入 ops ......
HDU1823 Luck and Love 题解
Question Luck and Love 小 \(w\) 征婚,收到很多女生报名,小 \(w\) 想找到最有缘分的女生,有 \(t\) 组操作 I H A L,\(H\) 表示身高,\(A\) 表示活泼度,\(L\) 表示好感度 Q H1 H2 A1 A2 表示身高和活泼度的范围,需要在这个范围 ......
P5309 [Ynoi2011] 初始化 题解
题目链接:初始化 这种 ynoi 的老题就是卡常。来简单说说这题的思维切入口。 看到形如 \(y+k \times x\) 的结构,自然而然思考一下如果我们是暴力更新会有怎么样的效果。我们容易发现,如果 \(x\) 比较大,暴力更新的次数 \(\dfrac{n}{x}\) 也不会很大的,但 \(x\ ......
洛谷P1250 种树 题解 差分约束求最小解集
题目链接:https://www.luogu.com.cn/problem/P1250 题目大意:略 解题思路:差分约束 求 最长路。 关于为什么求最长路可以看一下这边博客:《关于差分约束系统中跑最长路还是最短路的澄清》 博客的核心思想就是一句话: 要想求最小解集跑最长路;要想求最大解集跑最短路。 ......
mysql底层join算法
暴力 Nested-Loop Join 走索引的 index-Nested-Loop Join 缓冲块的 blocked-Nested-Loop Join mysql join 底层实现_mysql join实现算法-CSDN博客 走index loop join ,说明如果联表走主键,就算条件不走 ......
【算法】【线性表】【链表】链表求和
1 题目 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例: 输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295 输出:2 -> 1 -> 9,即912 进阶: ......
POJ3667 Hotel 题解
Question POJ3667 Hotel 旅店有 \(n\) 间连续的房间,操作有两种 D 入住,查询数量为 \(D\) 的连续房间,并且要最靠左,若能找到,则返回这个区间的左端点并占用这些房间,找不到则返回 \(0\) X D 退房,从房间 \(X\) 开始,退出连续长度为 \(D\) 的房间 ......
HDU1540 Tunnel Warfare 题解
Question HDU1540 Tunnel Warfare 在一条线上有 \(n\) 个村庄,两个相邻的村庄之间用地道连接,做 \(m\) 次操作 D x 第 \(x\) 个村庄被摧毁,它的地道也一同被摧毁 Q x 查询第 \(x\) 个村庄所能到达的村庄总数(包括村庄 \(x\)) R 重建刚 ......
1.8模拟赛 T2题解
简要题意 略 思路 先考虑啥样的 \(T\) 可能合法,就大概类似于一个一边删除,一边加入的操作,如果能删空,那就合法 但这样的 \(T\) ,不一定能作为答案,只有能将多余的数删除时才合法 那就用同样的策略,判断是否合法即可 接着考虑 \(T\) 的方案数咋求,设 \(dp_{i,j,k}\) , ......
1.8模拟赛 T1题解
简要题意 给定一棵有根树,操作分别为:将某个点到根路径上全部点颜色改为 \(c\);询问某个点到根路径上不同颜色数。 \(n\le10^5\) 思路 考虑对修改根号重构,那对于某次询问的路径,实际上就是前面有至多 \(\sqrt m\) 个相同颜色段,再拼上后面一段树上的颜色,也就是和修改中点的最深 ......
代码随想录算法训练营第二十七天 | 39. 组合总和,40.组合总和II,131.分割回文串
一、39. 组合总和 题目链接: LeetCode 39. 组合总和 学习前: 思路: 无 学习后: 思路: 需要额外定义的成员变量: private List<List<Integer>> res; private List<Integer> list; 调用函数: List<List<Integ ......
【题解】Codeforces 1876G Clubstep
首先考虑暴力的贪心。 从 \(r\) 到 \(l\) 依次遍历,若 \(a_i < x\) 则一直进行题目中的操作。 正确性是能保证的,因为选后面的 \(j\) 只能 \(+ 1\),而选 \(i\) 可以 \(+2\),且 \(i\) 前面的部分都是 \(+1\)。 考虑转化一下,把对 \(i\) ......
【题解】Codeforces 1852D Miriany and Matchstick
首先考虑到第一行是固定的,先去掉第一行的贡献。 接下来会有一个 \(O(n^2)\) 的 \(\text{DP}\)。 考虑设 \(f_{i, 0 / 1, j}\) 为考虑了 \(1\sim i\) 列的放置,第 \(i\) 列填 \(\text{A / B}\) 且对数为 \(j\) 是否可行。 ......
题解 P10055【[CCO2022] Rainy Markets】
首先尽量把所有人放在左边的车站,然后再尽量放在右边的车站,求出此时 \(i\) 位置车站有多少空位留给 \(i+0.5\) 位置的人,记为 \(f_i\)。也就是: \[f_i\gets\max\{b_i-\max\{p_{i-1}-f_{i-1},0\},0\} \]然后从右向左贪心。对于第 \( ......
ClickHouse的JOIN算法选择逻辑以及auto选项
Setting配置join_algorithm用于指定JOIN算法,它可以设置为多个值,例如join_algorithm='direct,hash,partial_merge'。在选择最终JOIN算法的时候是根据setting配置join_algorithm, 以及JOIN操作的Strictness... ......
【算法】【线性表】【数组】只出现一次的数字 II
1 题目 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1: 输入:nums = [2,2,3,2] 输出:3 示例 2: 输入:nums = ......
P10033 题解
不喜欢特判?不喜欢分讨?不喜欢被卡 corner?不喜欢证明?不喜欢动脑子? 那就看这篇题解! 感性思路 首先感性地感受一下题目宽泛的限制条件题解区各种花式的构造方法就不难想出,符合条件的序列实在很多,那不是随便构造?但是随便上随机化还是很容易被卡而且常数太大,又不想写屎山分讨被 corner 卡到 ......
(坚持每天都写算法)算法基础复习part1基础算法1-3
发现了一个不太好的习惯,我写东西不喜欢Tab一下,导致行与行之间有点难区分。 题目: 思路:这道题其实考的就是归并,2可以和3比,也可以和6比,也就是说2是可以被使用多次的。之所以使用归并,是因为单个的2以及单个的3也就是单个的数字可以看成是一个数组(关于这个想法,集合也是通用的),那么就要给数组进 ......
视频智能分析/边缘计算AI智能分析网关V4区域入侵检测算法如何配置?
上图所示是配置好的绘画区域,也可以自定义绘制(点击【检测区域】进行绘制即可),如果不绘制则默认检测整个摄像机的画面,点击保存配置可以将算法保存 ......
day11 代码随想录算法训练营 150. 逆波兰表达式求值
题目:150. 逆波兰表达式求值 我的感悟: 注意int(a/b)是0向截断 比如 -2.3 会得到-2; 比如3.6 会得到3 a//b是向下取整,比如是-2.3 会得到-3;比如3.6 会得到3 主要是负数不同 理解难点: 0向取整注意 注意先弹出的是右边的,(想象二叉树的结构。先弹出的是右边节 ......
Shaply算法
Shapley值归因是一种公平且基于贡献分配权重的算法,它源于博弈论,用于在多因素共同作用产生结果的情况下,精确计算每个因素(或渠道)对总体效果的独特贡献。以下是一个使用具体数据说明Shapley值归因的例子: 假设一个电商平台上有三个广告渠道:邮件营销(M)、社交媒体广告(S)和搜索引擎广告(E) ......
检验算法程序的好坏标准
什么是算法程序? 算法程序通常指的是执行特定算法的计算机程序。要深入理解这个概念,我们可以将其分解为“算法”和“程序”两部分,并探究它们的基本含义。 简而言之:对特定问题求解过程的描述。 算法 (Algorithm): 定义:算法是解决问题的明确步骤序列,它是独立于任何编程语言的,可以用伪代码、流程 ......
day11 代码随想录算法训练营 1047. 删除字符串中的所有相邻重复项
题目:1047. 删除字符串中的所有相邻重复项 我的感悟: 做过的题,还是有印象的。 本身也不难,独立写出来了。 理解难点: 代码难点: 代码示例: class Solution: def removeDuplicates(self, s: str) -> str: stack = [] for i ......
P4149 [IOI2011] Race 题解
题目链接:Race 点分治基本题,从这题简单阐述点分治如何思考问题的。点分治常见的解决一类问题,就是树里面的一些路径类问题。比如一些计数是最常见的。 点分治的一个核心计数思想: 如图所见,对于某个点而言,我们将它作为根,那么它的子树并排地排起来,我们依次遍历每棵树并累计树。 我们容易知道,包括这个点 ......