- 博客(25)
- 收藏
- 关注
原创 const 限定符
const对变量的类型,注意是类型加以限定;//即使是相同也是不行的,这是试图对一个常量写值;//const对象一旦创建后值不能改变,因此必须初始化,这里只有声明,因此错误;可见:ci是常量int,r1作为引用,必须也是常量,这是因为引用了,就代表可以修改值,因此两个变量都必须是const限定int b=1;
2023-07-26 15:35:52
80
原创 位运算/状态压缩
用的是位异或,不同为1,压进去的为1自然就不同;(这里还有一个操作,a^=(1<<digit),异或上同样的digit这个位就被消0了(11为0))假设有n个状态,那么我们就需要用到n位,我们令一个数 a=0,a^=( 1<<digit) digit=0~n-1;记录一个int mask=a,mask代表掩码, 如果我们要遍历所有的1,2.只保留最低位的1,其他的全部置0 int digit=s&(-s);1. s的最低位的1去掉,s&(s-1) 这样就值改变了最低位的1为0。
2023-07-22 20:27:08
131
原创 算法/数据结构/并查集
比如1->2->3,作为树来看1是根节点,那么我们让3的根也为1,1->2,1->3);在图里: 比如我们要查两个节点是否连着,如果连着我们就可以用isSame找出来就好了;并查集作为一种数据结构,我们要在原有基础上创建它,首先就需要建立一个数组father。大白话就是当我们需要判断两个元素是否在同一个集合里的时候,我们就要想到用并查集。如果我们要把两个元素加入一个集合中(或者两个点连成一条线)判断两个元素在不在同一个集合 isSame;将两个元素添加到一个集合中。接下来围绕并查集的这两个功能来展开讲解。
2023-06-16 15:39:15
76
原创 摩尔投票法/消消乐
投票法的精髓就是,如果你找n个数中大于n/m的数,那么你按m个数消消乐,你会发现消n/m次后,剩余最多(m-1)个数,所以你检测一下这m-1个数在数组出现的次数,这其实是O(n)的;因此,你也只用建立m-1个变量,一旦多了一个变量,那么就按m个消消乐;举个例子:如果m=2,那么就是按2消除,记录m-1=1个参数就可以了;如果m=3,那么就是按3消,记录m-1=2个参数就可以了;如果m=2,剩下的就是了,因为你比别人多,消完了就可以了;而m=a>2,只能保证有剩下的,不能保证都是你需要的;
2023-06-02 19:57:13
77
原创 数据结构 哈希表与红黑树
红黑树是一种 BST,知道是BST就挺好懂了,肯定是有序的,而且是链式结构,空间没有问题;红黑树 RBT有他特别的把节点标色的方法,所以最坏情况是O(logn);文章里说,哈希表如果理解成数组: key=下标;value=元素值,所以他的。
2023-05-29 19:20:04
100
原创 C++ C++ C++
显然,10/10 应该为1,9/10为0,这是因为整数除法会舍弃小数部分,只返回整数部分。在 C++ 中,进行除法操作时,如果操作数中有一个是浮点数类型,那么结果将被自动转换为浮点数。因此,9 / 10.0的结果将是浮点数值0.9。即使其中一个操作数是整数类型,如果另一个是浮点数类型,C++ 会执行隐式类型转换以产生浮点数结果。也就是说 9.0/10和 9/10.0都是为0.9;
2023-05-19 20:48:52
163
原创 动态规划dp
此时dp[j]有两个选择,一个是取自己dp[j] 相当于 二维dp数组中的dp[i-1][j],即不放物品i,一个是取dp[j - weight[i]] + value[i],即放物品i,指定是取最大的,毕竟是求最大价值。dp[j]可以通过dp[j - weight[i]]推导出来,dp[j - weight[i]]表示容量为j - weight[i]的背包所背的最大价值。参考 dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]));
2023-04-22 15:35:43
69
原创 回溯算法backtrack
2.每一个树的分支去重,可以用map,也可以构造一个bool的vector记录;1.每一层去重,下一层就不适用,此时用set,set也在递归函数里定义;3.排序sort,忘记什么情况了。
2023-04-17 15:04:46
122
原创 VTM率失真性能曲线
PSNR可以直接绘制,我看论文里用的都是Y-PSNR,那么只用Y-PSNR就可以;标点这种代码用chat肯定是不会错的;获取数据,Qp=22~37,Qstep=5;先获取需要视频序列的数据;SSIM用的是ffmpeg,需要下载ffmpeg并添加到环境变量;rec.yuv比原yuv大是正常的,因为信息更多;
2023-04-05 11:59:31
143
原创 C++ 栈和队列
顺序栈是指利用顺序存储结构实现的栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针 top指示栈顶元素在顺序栈中的位置。通常习惯的做法是:以top=0表示空栈。表尾称为栈顶,表头端称为栈底。不含元素的空表称为空栈。栈的修改是按后进先出的原则进行的。栈是限定仅在表尾进行插入或删除操作的。
2023-03-30 19:50:51
118
原创 c++ 一些库函数学习使用(持续更新)
调用方法: vector myvec;调用方法:sort(s.begin(),s.end(),comp),左闭右开,默认升序,第三个参数是升降序;移除完后,就会把其他元素往前移,因此时间复杂度就是一个for;erase() 移除元素 O(n);时间复杂度:O(nlogn)sort()快速排序;
2023-03-27 16:05:44
272
原创 VTM18.0 cfg增k-v记录 及error:unknown potion解决
如果在cfg文件里加入自己的一个操作参数,那么你不仅需要读取它,还需要在VTM自带的解析cfg的类和成员函数里加上你的东西。
2022-11-11 10:30:59
223
原创 HEVC学习(03)
(图之后放)首先知道I、P、B帧的概念是非常重要的。I帧仅做帧内预测,用于给GOP中的其他帧做参考帧。P帧(可以帧内吗?) 可以做帧间预测,但只能做前向。B帧做帧间预测,双向。P和B帧的存在就是为了压缩,视频编码的主要目的也就是压缩。视频序列进入编码器后,会进行预测,预测及遍历,找到最优模式后与图像做差,获得残差值,残差值要经历变换(能量集中化),量化(精低频,粗高频),熵编码(转成码流),不仅如此,量化后的值还要经历反变化,滤波来参加预测。
2022-09-23 15:12:25
473
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人