iOS

数据结构二

复健(Day5) 数据结构二 (3.)并查集 ((1))​亲戚 https://www.luogu.com.cn/problem/P1551 并查集模板 ((2))星球大战 https://www.luogu.com.cn/problem/P1197 每次打击一个星球之后,相当于删除了一条边,然后求此时的连通块数量。 求连通块数量且还有合并的操作(以太隧道),我们可以很快想到并查集的做法,但是并

数据结构一

复健(Day5) 数据结构一 (1.)单调栈和单调队列 ((1).)海报(PLA-Postering) https://www.luogu.com.cn/problem/P3467 首先很明显宽度是无用的因素,直接忽略掉即可。 对于海报覆盖,我们发现只有出现这样一种情况我们的覆盖数可以减小:某两个楼层的高度相同,且二者之间没有出现比它们更矮的楼层 这样的话,覆盖前一个口曾的时候我们适当向右拓展就可

数据结构三

复健(Day5) 数据结构三 (4.)线段树和树状数组 线段树模板(维护和) 包含区间修改,区间查询 线段树扫描线问题 用于求矩形面积并和周长并的一种方法 以从下往上扫描面积并为例,我们发现只有每个矩形的上下两条边会对答案造成影响,我们运用差分的方法,下边权值为(1),上边权值为(-1),我们扫描至某个矩形时,其下边权值为(1),相当与插入,上边(-1)相当于删除。 我们用一个四元组((y,x1

搜索一

复健(Day 6) 搜索一 一.基础的(DFS)和(BFS) 宽搜我不是很常写,这里给出模板 (1.)([SHOI2002])滑雪 https://www.luogu.com.cn/problem/P1434 我首先想到的方法其实是(dp),很显然可以得到一个状态方程(dp[i][j]=max(dp[i][j],dp[i+1][j]+1,dp[i-1][j]+1,dp[i][j+1]+1,dp[

搜索二

复健(Day6) 注:这一篇笔记里的搜索题都非常简单 搜索二 (1.)迷宫 https://www.luogu.com.cn/problem/P1605 不要忘了回溯 这道题有个非常重要的点:我们要把起点设为不能访问,如果不这样的话,我们可能会走过起点两次,这样你的答案就会多于正确答案 (2.)跳马 https://www.luogu.com.cn/problem/P1644 因为一直是往右的,

图论二

复健(Day7) 图论二 (1.)拓扑排序 求字典序最小的拓扑序,我们把(queue)改为(priority_queue)就可以了 (2.)最短路问题 (Dijkstra)模板(不能处理有负边权的情况) (SPFA)算法(不能处理含负环的情况) 全源最短路算法(Johnson)算法(可处理带负边权的情况) 在(n)轮(Dijkstra)算法的基础上稍加改造,使其能够处理负边权,即建立虚拟源点

图论一

复健(Day7)(图论一) (1.)单源最短路的建图方式 (1.)香甜的黄油 https://www.acwing.com/problem/content/description/1129/ 就是非常简单的(Dijkstra)模板,因为我们的堆优化(Dijkstra)的复杂度是(O(nlogn)),然后我们枚举终点,最终复杂度为(O(nplogn)),是(1e8)多的复杂度可以通过,当然你也可以

23 暑假友谊赛 No.3

23 暑假友谊赛 No.3 A - 把你砍成两半! 思路:确定a1时,当a2~an都为a1的倍数时,条件一定满足 View Code   B - 小叶,我们加油! 思路:暴力求每一行选每种方案的最小价值,或对每一行dp View Code   C - 工程学的作用不可小觑! 思路:取两个边界即可 View Code   D - 做博士的护卫?好

图论四

复健(Day7) 图论四 如果一张无向图的(N)个节点可以分成(A,B)两个不相交的非空集合,并且同一集合内的点之间没有边相连,那么称改无向图为二分图 二分图不存在奇环(长度为奇数的环) 因为每一条边都是从一个集合走到另一个集合,只有走偶数次才能回到出发点 (1.)二分图判定(染色法) 用染色法来判定二分图,若标记过程中出现冲突,则说明图中产生了奇环,不是二分图 时间复杂度(O(n+m))

图论三

复健(Day7) 图论三 (1.)网络流最大流问题 平均来看(Dinic)算法效率强于(EK)算法,所以我这里只学习了(Dinic)算法 网络流是指有一个源点和一个汇点的图,然后每条边有流量限制,我们通过这个算法可以求出源点最大流量 时间复杂度为(O(nm^2)) https://www.luogu.com.cn/problem/P3376 (2.)网络流最小割问题 对于一个网络,我们切一刀,将

图论提高

复健(Day7) 图论一 (DGA:)有向无环图 (SCC:)强连通 (BCC:)双连通 强联通:有向图中,两个顶点至少存在一条路径(两个顶点可以互相到达) 强连通图:每两个顶点都强连通的有向图 强连通分量:有向图的极大强连通子图 (1.)有向图的强连通分量 问题模型: 对于一些存在依赖关系的模型,若其建图是一个(DAG),则可以直接通过拓扑排序解决,但是如果其中有环则需要特殊处理 对于有环的情况

暑假训练赛

A......找ABC就行了 第五次比赛 - Virtual Judge (vjudge.net)   B......结构体排序,注意读题,读假题直接废 第一个条件就是  1价格要是小的   2功能要是对方的有的全部  坑点就是第三条,要么价格小于并且功能数相等,如果两个价格等于那么你的功能数就要大于它     C 

【csp2020】 方格取数 题解

洛谷传送门 1.题目大意 给定一个 (n*m) 的矩阵,矩阵中每个点 ((i,j)) 都有一个权值 (f_{(i,j)})。每次可以向上,向下或向右走。问从 ((1,1)) 走到 ((n,m)),经过的路径上点的权值之和最大是多少? 2.思路 这道题我们不难想到动态规划。但是与一般的动规不同的是,本题中有上下右三种走法,因此不能用一般的 (dp) 解决。 因此我们可以采用化繁为简的策略,即将三种走

msm8909_MIPI转HDMI调试记录

项目中需要把开发板的MIPI输出信号转换为HDMI和LVDS输出,使用龙迅的LT8912B进行转换。龙迅的FAE提供的资料相对来说还是比较少的。先简单的看一下吧: 厂商资料 寄存器配置 该文件提供了对LT8912B初始化的寄存器配置。对于我们来说需要做的就是,写一个驱动,在开机的时候调用相关的函数,把对应的值写道LT8912B的寄存器里面即可。 https://klelee-files.oss-c

多项式学习笔记

前言 不要问为啥跟全家桶是分开写的,问就是全家桶实在是太多了/jk [ZJOI2014] 力 题目链接:[ZJOI2014] 力 题意 给出 (n) 个数 (q_1,q_2, dots q_n),定义 [F_j~=~sum_{i = 1}^{j - 1} frac{q_i times q_j}{(i - j)^2}~-~sum_{i = j + 1}^{n} frac{q_i times q_j}

转:[译] Linux 异步 I_O 框架 io_uring:基本原理、程序示例与性能压测(2020)

译者序 本文组合翻译了以下两篇文章的干货部分,作为 io_uring 相关的入门参考: How io_uring and eBPF Will Revolutionize Programming in Linux, ScyllaDB, 2020 An Introduction to the io_uring Asynchronous I/O Framework, Oracle, 2020 io

模拟赛总结(1)

一.题目解析 1.遗忘的来年花期 20%: 因为序列严格递增,所以直接 cout << 0; 即可。 100%: 注意不等号和 (i) 的范围,之后直接模拟。 2.意外爱上黄昏来临时 20%: (n=2) 的数据范围,所以直接枚举 (k) 即可。 80%: 由于 (y) 可以被 (x) 用桶记录,所以不用枚举 (y)。 100%: 用字符串维护每一列的 (01) 数(也可以说成二进制

码风

我的码风前后经历了两次变革: (1. quad 2020 sim 2023.8.1) (2. quad 2023.8.1 sim today) 之前的码风: 调用函数: 快读模板: 看着确实很挤,找错也不容易。 现在的码风: 我个人认为现在的码风比之前的好看很多。

28.STL中slist的实现

28.STL中slist的实现 1.链表结构 2.链表初始化 3.插入数据 3.1前插 3.2尾插 3.3任意位置插入元素 4.打印 5.查询值 5.1按位置查找值 5.2按值查找 6.单链表的删除 7.链表销毁 完整代码 参考资料: 奇牛学院 1.接口总览 2.forward_list 的节点 forward_list 节点的设计与 list 的节点类似,只需两个成员变量

29.STL中list的实现

29.STL中list的实现 1.顺序表 1.顺序表的定义 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 顺序表:可动态增长的数组,要求数据是连续存储的 大话数据结构版 2.顺序表的初始化 3.顺序表的打印 4.表尾添加元素 5.表中任意位置插入元素 6.表中任意位置删除元素 7.链表销毁 8.获取

31.STL中stack和queue的实现

31.STL中stack和queue的实现 1.STL中stack 1.栈的概念 栈(Stack)是一种数据结构,它遵循后进先出(Last-In-First-Out,LIFO)的原则,也就是说,最后进入栈的元素最先被取出。栈是一种线性数据结构,它由多个元素组成,每个元素被称为栈项(stack item),栈顶(top)是指最后一个被压入栈的元素,栈底(bottom)是指第一个被压入栈的元素。 栈的

34.STL中set的实现?

34.STL中set的实现? STL中的容器可分为序列式容器(sequence)和关联式容器(associative),set属于关联式容器。 set的特性是,所有元素都会根据元素的值自动被排序(默认升序),set元素的键值就是实值,实值就是键值,set不允许有两个相同的键值 set不允许迭代器修改元素的值,其迭代器是一种constance iterators 标准的STL set以RB-tree

魔刀千刃(轮廓)

#include <iostream>#include "minecraft.h"using namespace std;TxMinecraft mc;int main(){bool c=true;c=mc.ConnectMinecraft("zk","badaa4c2a1b546f1868517667456b050");if(!c){ cout<<"连接失败"<&l

P1957 口算练习题

分析 这道题乍一看好像很复杂,但其实主要难点只在于处理读入的字符串。 我们不妨先忽略处理的详细过程,分别以函数(a1,a2,a3)代替加,减,乘,先把总体过程写出来。 点击查看代码 这里使用fgets()读入一行字符串,通过switch语句判断字符串开头的字母并分别处理。为了使未输入字母时也能正确处理,引入了变量(textup{kd})记录上一次的运算方法。 接下来就是处理字符串了。 处理字

梦幻岛宝珠 个人题解

这题的物品数量非常小,但是背包的重量非常大,我们采用压缩到二进制位来考虑,因为最多是n*20的数位*个数,并且上一位dp的状态不影响下一位。所以我们设计当前dp的状态为选取了前i位置时候所能获得的最大值。又因为上一维在数组dp时可能会被上一维的影响所以f[min(2*i+d,s)] =max(f[min(2*i+d,s)],g[i]);来在这一维中更新当前的值。最后再在vector里面跑一下当前维

C++:多态的底层实现原理 -- 虚函数表

目录 一. 多态的原理 1.1 虚函数表 1.2 多态的实现原理 1.3 动态绑定与静态绑定 二. 多继承中的虚函数表 2.1 虚函数表的打印 2.2 多继承中虚函数表中的内容存储情况 一. 多态的原理1.1 虚函数表对于一个含有虚函数的的类,在实例化出来对象以后,对象所存储的内容包含两部分: 类的成员变量。一个指向虚函数表得虚函数表指针。下段代码定义了一个Base类,其中包含虚函数func1以及

Template <lca 最近公共祖先>

01 倍增lca P3379 【模板】最近公共祖先(LCA) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1.1 常用简短版本(利用结点深度) 1.2 利用dfs序判断祖先版本

2023牛客暑期多校训练营5 ABCDEGHI

比赛链接 A 题解 知识点:莫队,树状数组。 区间询问显然可以离线莫队,考虑端点移动对答案的影响。 不妨先考虑右端点右移一个位置,对答案的改变。假设右端点右移后在 (r) ,我们先要知道 ([l,r-1]) 中和 (a_r) 相等的位置。对于每个这样的位置 (l') ,我们将 ([l',r-1]) 中小于 (a_r) 的数字个数加起来,就是右移的贡献。 我们可以先树状数组预处理出,对于每个点在它之

<<  <  323  324  325  326  327  328  329  330  331  332  333  >  >>