优先队列的第三个参数的实际含义,为什么less对应大顶堆,greater对应小顶堆; 因此,不难理解 less < 对应大顶堆了,当父结点小于子结点的时候,会进行交换,从而将大的值转换到父结点,从而堆顶就是最大元素了;priority_queue传入的第三个参数是仿函数,是将新插入数据与父结点进行比较,使用仿函数:if (com(_con[child] , _con[parent]))堆的本质是二叉树,堆排序就是将树的父结点与子结点进行比较、互换的结果;堆排序:就是将容器里面的数据按照堆特征进行排序;大顶堆,父结点比子结点大,所以堆顶是最大的;小顶堆,父结点比子结点小,所以堆顶是最小的;
【无标题】 当应用程序建立一个RTP会话的时候,会确定1个目的传输地址,以及 1对端口,一个端口用于接收/发送RTP包,另一个端口用于接收/发送RTCP包,一直有这个疑惑,公司的rtp数据包被前端添加了一个 0x887766550300 的头,因此可以快速确定;当应用程序开始一个RTP会话时,将开启两个端口:一个给RTP,一个给RTCP。RTP包头最少12字节,其中 PT 表示载荷类型,timestamp 时戳占32位,必须是90kHz时钟频率。RTP位于传输层,用于实时数据的传输工作,一般使用UDP传送数据。
h.264 h.265 协议基本概念记录 VPS(视频参数集)NALU的头值为0x4001(十六进制),取出2-7位(40 & 0x7E)>>1 =32(十进制)SPS(序列参数集)NALU的头值为0x4201(十六进制),取出2-7位(42 & 0x7E)>>1 =33(十进制)PPS(图像参数集)NALU的头值为0x4401(十六进制),取出2-7位(44 & 0x7E)>>1 =34(十进制)启始码+VPS+启始码+SPS+启始码+PPS+启始码+SEI+启始码+I帧+启始码+P帧+启始码+P帧+…2到7位表示nalutype。
algorithm2e笔记,记录一下常规操作 先贴一张图片:记录一下这几种用法:1 常规示例代码及包导入;在下载完Aurora、MikTex之后,打开Word,Aurora -> Inline Equation-> Propertity 导入algorithm2e包,中括号代表一些配置,详见algorithm2e.pdf-7.1节\usepackage[ruled,boxed,commentsnumbered]{algorithm2e}然后键入常规示例\SetKwRepeat{Do}{do}{while}%\begi
记录一种CUDA常见错误情景:结果随机 最近需要将之前的CUDA优化代码复盘,得到每一种优化下的加速比,因此,每一次优化后需要对比C,CUDA的结果,赶巧不巧,遇上了这么一种情况:核函数功能 :核函数D_SDF1_SRC1_MultiChan需要在一个Block中完成多路的执行,因为可以共用数据,利用共享内存提供更快和更少次数的内存访问;其Block图如图所示:于是希望在每一行的Thread中取不同的常数,使用threadIdx.y作为标识:__global__ void SRC1Kernel_MultiChan(short *d_sr1
宏定义统计语句执行时间 最近写毕业论文的程序,发现了一种更加优雅的统计时间方法,记录一下chrono主要利用<chrono>这个时间库来实现,里面包含三种时钟:system_clock: 起点是1970-01-01 00:00:00 UTCsteady_clock: 起点是系统启动时间,一般用于得到时间间隔high_resolution_clock:高分辨率的版本本次使用system_clockcodeRD.h#include<iostream>#include <chrono
FFTW cuFFT的使用记录 好久没写点什么东西了,今天饶有兴趣,总结一下FFTW、cuFFT的调用方法。一些知识点的回顾弄懂了FT、DTFT、DFT三者之间的关系傅里叶变换(Fourier Transform,FT),表示能够将一定条件的某个函数表示为三角函数或者它们的积分的线性组合。从连续域到连续域。离散时间傅里叶变换(Discrete-time Fourier Transform,DTFT),表示将以离散时间nT作为变量的函数变换到连续频域,频谱会周期延拓。离散傅里叶变换(Discrete Fourier Transfo
记录一个奇怪的问题:vscode C++扩展更新后,无法命中断点 昨天在做美团笔试的时候,发现我的vscode无法进行调试,一直找不到原因,后来索性将mingw64重新下载,删掉之前的,然后卸载与C++相关的扩展,解决了。然后今天发现又不行了,我一看,原来是这个扩展更新了,回退到上一个版本,问题解决,难道是这个扩展出现了bug?...
二叉树的构造总结 :前序+中序、中序+后续 文章目录前序+中序:中序+后序从前序与中序遍历序列构造二叉树从中序与后序遍历序列构造二叉树这两道题都是二叉树的构造,二叉树有三种遍历方式:前序:根左右中序:左根右后序:左右根 前序+中序得到完整的二叉树,首先由前序确定根结点的值,然后在中序序列中,找到根结点的位置,由此确定左子树的长度,进而可以递归得到完整的二叉树 同样,中序+后序也可以得到完整的二叉树,首先由后序遍历确定根结点的值,然后找到根结点在中序序列中的位置,确定左子树的长度,进而递归得到完整的二叉树这里面有两个地方
总结:动态规划(3)完全背包&&面试背包问题总结 文章目录完全背包518 零钱兑换II377 组合总和 Ⅳ70 爬楼梯322 零钱兑换279 完全平方数139 单次拆分多重背包总结完全背包完全背包和01背包的区别就是物品是否可以重复选取有N件物品和⼀个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。物品都有无数个,问将哪些物品装入背包里,物品价值总和最大?在01背包里面,如果使用滚动数组,对遍历顺序有要求,必须先遍历物品,再遍历背包,并且遍历背包需要从大到小,防止物品被重复添加;在完全背包里面,对于遍
总结:动态规划(2)01背包变形 文章目录01背包变形传统思路添加附件后的转换完整代码01背包变形华为机试HJ16购物单这一道题,有年终奖N,需要购买商品,商品有价格v[i],重要度p[i] ; 与一般的01背包不同的是,商品还含有附件,每个主件可以有0个、1个或2个附件,购买附件的话就需要购买主件(确实,不然我买这个干嘛呢?)传统思路 如果,不考虑附件,那么就是一个传统背包问题,总金额为N,物品价格为v[i],dp[i][j]表示在下标[0,i]中选取商品得到的最大满意度,满意度=价格*重要度;那么,就是:dp[i][
总结:动态规划(2)01背包 文章目录动态规划01背包01背包 二维数组01背包 滚动数组416 分割等和子集494 目标和474 一和零动态规划01背包01背包 二维数组有N件物品和⼀个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每 件物品只能⽤⼀次,求解将哪些物品装⼊背包⾥物品价值总和最⼤。暴力解法 :很多题目上来,应该先看看暴力解法,暴力解法代表了最顺畅的思路,在此基础上才延伸出其他巧妙地解法。本题每件物品有两种状态:选、不选,那么可以通过回溯法,列出所有可能的组合,计
总结:动态规划(1) 基础题型,动规五部曲 文章目录动态规划基础题509 fibonacci70 爬楼梯746 使用最小花费爬楼梯62 不同路径63 不同路径II343 整数拆分96 不同的二叉搜索树动态规划动规五部曲:确定dp数组以及下标含义;确定递推公式;dp初始化;确定遍历的顺序;举例推导dp数组;基础题509 fibonacci确定dp数组以及下标含义; dp[i]表示第i个fibonacci数确定递推公式;dp[i]=dp[i-1]+dp[i-2]dp初始化;dp[1]=0,dp[2]=1确定遍历的顺序;从1