K-D Tree 相关
部分发表于洛谷。
简介:
K-D Tree 是一种适用于 \(k\) 维空间信息处理的数据结构,一般是维护 \(n\) 个点的信息,建出平衡二叉树;在 \(k\) 比较小的
建树:
一般使用交替建树,递归的分为以下三个步骤:
交替选择一个维度切割(即 \(x, y, z, \cdots\) 依次切一遍,最后回到 \(x\) 继续切)。
选择一个切割点将这个维 ...
C++ ODB ORM 从入门到实战应用(ODB使用)
目录一、ODB 核心概念与环境准备1. ORM 与 ODB 简介2. 环境搭建(1)安装 ODB 工具链(2)项目依赖二、ODB 入门:简单对象映射1. 定义持久化类2. 生成数据库访问代码3. 基础数据库操作(CRUD)(1)初始化数据库连接(2)插入数据(Create)(3)查询数据(Read)(4)更新数据(Update)(5)删除数据(Delete)三、ODB 进 ...
c++虚函数及常见问题汇总
目录1 多态1.1 虚函数2 虚函数和虚函数表2.1 函数名即地址2.2 虚表2.3 单继承,没有虚函数覆盖2.4 单继承,有虚函数覆盖 --> 表项替换2.5 多继承2.6 一个类的多个对象是不是共享一个虚函数表 ?2.7 一个基类的多个派生类之间是共享一个虚表吗 ?2.8 虚函数重载3虚函数和纯虚函数3.1 为什么引入纯虚函数3.2 纯虚函数和虚 ...
C++ 关联式容器map 与 set 的原理与实践操作
目录一、关联式容器的核心概念1. 容器分类与特点2. 底层实现3. 搜索模型二、set 的原理与使用1. set 的核心特性2. set 的常用操作(1)插入操作(2)遍历操作(3)删除操作(4)查找操作3. set 的实际应用三、map 的原理与使用1. map 的核心特性2. map 的常用操作(1)pair 类型介绍(2)插入操作(3)遍历操作(4)查找与 ...
C语言逗号运算符和逗号表达式的使用小结
在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接
其一般形式为:
表达式 1,表达式 2
1+1,2+2
其求值过程是分别求两个表达式的值,并以表达式 2 的值作为整个逗号表达式的值。
main(){
int a=2,b=4,c=6,x,y;
y=(x=a+b),(b+c);
printf("y=%d,x=%d",y,x);
}
本例中,y 等于 ...
FFmpeg开发笔记(九十)采用FFmpeg套壳的音视频转码百宝箱FFBox
FFmpeg是个经典的音视频处理开源框架,可是FFmpeg仅提供命令行方式,通过FFmpeg剪辑音视频只能在命令行下面操作,从而限制了普通用户掌握FFmpeg。
虽然《FFmpeg开发实战:从零基础到短视频上线》一书不仅给出了基于FFmpeg函数调用的示例代码,也给出了具体的ffmpeg操作命令,从而兼具FFmpeg的代码开发教程与FFmpeg的命令 ...
C++打印 vector的几种方法小结
目录1. 使用迭代器2. 使用 auto (C++11) / typedef / type alias (C++11)3. 计数器4. range-base 循环5. 重载操作符 <<1. 使用迭代器
std::vector<char> path;
for (std::vector<char>::const_iterator i = path.begin(); i != path.end(); ++1) {
std::cout << *i << ' ';
}
如果想要在循环的同时能够修改 vecto ...
C++自学之路1:Hello world
C++ 语法基础
本文主要通过Hello world这样一个简单的c++程序来认识C++的基础语法框架
本文内容主要来自OI wiki
#include <iostream> // 引用头文件
int main() // 定义 main 函数
{
std::cout << "Hello, world!"; // 使用标准命名空间中的 cout 函数
return 0; // 返回 0,结束 main 函 ...
代码随想录Day25_回溯5_全排列
非递减子序列
问题描述
给了一个数组,要求给出其所有长度>=2的非递减子序列。
思路
压入结果的条件是path.size()>=2,回溯过程结束的条件是移动到了边上startIndex>=num.size()
在树中,非递减序列,要求压入的元素必须比之前压入的大:if(path.empty()||nums>=path.back())
问题
如果给出的数组包含重复元素,那么答案的 ...
FFmpeg开发笔记(八十九)基于FFmpeg的直播视频录制工具StreamCap
随着推拉流技术的发展,现在网络直播应用很普及了,打开许多App都能看到各式各样的直播节目,包括抖音、快手、虎牙、斗鱼、B站、小红书、YY、映客等等。
有关视频推拉流的FFmpeg实现参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”,使用FFmpeg结合专用的流媒体服务器,可以很方便 ...
用C语言和文本文件实现一个简单的,可保存的通讯录
我们先思考一个通讯录都有那些信息,很明显通讯录记录的是人
人有哪些信息呢
这里我就写5个吧,分别是姓名,年龄,电话,性别,地址
然后我们把他们写成一个结构体,最好定义在头文件里,这样在使用的时候更方便
我们还可以把要使用的一些常用的或者要修改的常量定义成枚举,后续有什么要添加的,直接就能在枚举中添加
//枚 ...
C语言中的库函数feof和ferror
我们来详细解释一下 C 语言中的 ferror 和 feof 这两个库函数。
1. ferror 函数
int ferror(FILE *stream);
功能:检查指定文件流(stream)上是否发生了错误。
返回值:
如果文件流上有错误发生,返回一个非零值(true)。
如果没有错误发生,返回 0(false)。
说明:
当对文件进行读写操作时,如果发生错误(例如:磁盘 ...
代码随想录Day22_回溯.md
回溯理论
什么是回溯
回溯,顾名思义,返回溯源,记录当前节点后返回前一节点继续的过程。本质上是一种罗列所有情况的穷举搜索。
递归
递归,函数间接或者直接调用自身,回到最初最简单的情况。目前的情况归根结底就是一棵树的情况。
回溯与递归
为什么说回溯常常伴随递归?递归是把一棵大二叉树返回到一个最基本的三个节点 ...
C++(Qt)-显示离线瓦片图
版权声明:
本文为原创内容,作者:[Yzi321]。
转载请注明出处:
原博主主页:https://www.cnblogs.com/Yzi321
本文链接:https://www.cnblogs.com/Yzi321/p/19269003
许可协议:CC BY 4.0
Qt版本:5.11.2
编译平台:MSVC 2017 x64
一、背景
在高分辨率图像浏览、地图渲染或工业视觉中,单张完整图像往往非常大,直接加 ...
洛谷-P5658 [CSP-S 2019] 括号树 题解
值域线段树 + 离线的 \(O(n\log n)\) 做法。
题目大意
给定一棵树,每个节点有一个括号。对于每个节点 \(i\),定义 \(s_i\) 为从根节点到 \(i\) 的路径上所有括号按顺序组成的字符串。求每个 \(s_i\) 中互不相同的合法括号子串的个数 \(k_i\)。
思路
首先,\(k_i\) 可以从父节点递推得到,\(k_i=k_{f_i}+a_i\)。其中 \(a_i\ ...
C语言中的数组名的隐式转换
1.数组名的隐式转换规则
在C语言中数组名在绝大多数表达式场景中,会自动转换成指向数组首元素的指针
1.1触发条件
当数组名作为表达式使用时,除两种情况外,都会发生该隐式转换
1.2触发结果
数组名会转化为指向数组首元素的指针,指针的类型由数组元素的类型决定
例外
1.数组名作为sizeof的操作数
2.数组名作为&的操作数
...
基于c++ eigen的Nelder-Mead算法(仿照scipy)
简介
本文展示了用C++(Eigen)实现的Nelder-Mead算法,该实现仿照了Python SciPy库中的scipy.optimize.fmin函数。虽然目前仅完成了基础功能(fmin不支持full_output和retall),但已经可以应用于实际优化问题。
Nelder-Mead算法简介
Nelder-Mead算法(也称单纯形法)是一种常用的无导数优化方法,特别适合于:
函数导数难以 ...
C中单向链表之增删改查
C中单向链表之增删改查
// 链表(Linked List)是一种基础但至关重要的数据结构。它通过动态内存分配实现数据的非连续存储,解决了数组的固定长度和插入/删除低效的问题。无论是算法面试还是实际开发,链表都是高频考点和核心技能之一。
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <cstring>
us ...
P2279 [HNOI2003] 消防局的设立 题解加总结
正题之前
又是一道抓耳挠腮想了好久的好题, AC 了之后,感觉自己的思想又得到了洗礼 QwQ ,第一次写题解,有错望老师见谅
题目传送门
思路
因为题目求的是覆盖树上所有点的所放置最少的消防站数量,因此此题需使用树形 DP 解决
状态申明
因为每个"消防局"能覆盖与它距离不超过 2 的节点 ,因此
总共设有5个状态
dp[x][0] ...
热身赛总结 题解
1. 旅行计划
赛时思路
因为目标是:求出一直向东以城市 \(i\) 为终点最多能够游览多少个城市,我进行逆向思维,转换题意,将目标改成:以城市 \(i\) 为起点一直向西最多能够游览多少个城市,再看题目的数据范围:$n \le 10^5 $,因此便直接用 dfs 进行搜索,最后 TLE 了4个点 QwQ 。
改进思路
因为题目中说图中没有环,因此 ...