分类: ALGORITHM

My Algorithm Learning

106 篇文章

激光炸弹
Original Link 思想: 二维前缀和。 注意空间,数组不要开 long long。 注意给出的坐标的下标是从 $0$ 开始的。 循环遍历前缀和数组,维护一个最大价值即可。 代码: #include <bits/stdc++.h> using namespace std; con…
回文日期
Origin Link 思想: 字符串模拟。 对于第一个符合要求的年份,可以暴力枚举日期进行判断。 第二个年份,需要保证 ABABBABA 的形式,则只需枚举 AB 即可。 代码: #include<bits/stdc++.h> using namespace std; int y[2]…
截断数组
Original Link 思想: 前缀和。 特殊情况: 当数组元素小于三个时,无解。 当该数组所有数之和不为 $3$ 的整数倍时,无解。 设数组均分的值为 res,循环遍历前缀和数组 a。 设 i 为分割点,若 a[i] == res,说明将 i 作为分割点有可能成立,记录分割点数量为 cnt +…
改变数组元素
Original link 思想: 前缀和与差分。 对于 a[i] 的操作,构建差分数组 b[i] 记录被操作的区间。 利用前缀和可知所有被操作的区间,即 b[i] != 0 的区间。 代码: #include <bits/stdc++.h> using namespace std; c…
AC 自动机详解
前置知识 字典树 Trie Trie 是一种能够快速插入和查询字符串的多叉树结构。节点的编号各不相同,根节点编号为0,其他节点用来标识路径还可以标记单词插入的次数。边表示字符。 支持操作 Trie 维护字符串的集合,支持两种操作: 向集合中插入一个字符串:void insert(char *s) 在…
图的存储
1. 邻接矩阵 思想: 利用二维数组 g[N][N] 存储所有的点到点的权值。 其中 N 为点的数量,g[i][j] 表示点 i 到点 j 的权值。 时间复杂度:$\mathcal{O}(n^2)$ 空间复杂度:$\mathcal{O}(n^2)$ 应用: 只在点数不多的稠密图使用。 大部分情况下点…
STL 常用操作
STL 常用操作 1. vector 1.1 声明 #include <vector> // 头文件 vector<int> a; // 相当于一个长度动态变化的int数组 vector<int> b[233]; // 相当于第一维长233,第二位长度动态变化的i…
河南工程学院2022级新生周赛(五)题解
A. HF 的智能小车车 原题链接 描述: 众嗦粥汁,$HF$ 最近天天泡在实验室里做他的智能小车车,但在调试的时候发现控制转向和行进的指令搞混了。这种小事对他来说太简单了,用他的原话说就是:"有手就行",于是他就懒得继续做下去了。 $HF$ 把这个做了一半的车子丢给了 $LYS…