自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 glEnableClientState和glDisableClientState

glEnableClientState / glDisableClientState是一组启动/关闭 顶点坐标、纹理坐标、法线向量、顶点颜色等属性的客户端函数。用glxxxxxxPointer来指向数据,比如glVertexPointer(3, GL_DOUBLE, 0, mesh.points());// 3个double表示一个点。// 前后数据的物理位置间隔是0,表示紧密排列// 顶点坐标由mesh.points() 数组给出这一组形式相较于glBegin / glEnd优势在于它能够更灵

2021-03-10 16:32:57 1045

原创 骨架提取之基于模板匹配的细化方法

体素的3*3*3邻域有2^26次方种情况,这篇论文给出的方法是,给出了简单点的邻域模板,满足模板的体素就是可以删除的简单点。模板有6个方向(Up、Down、North、South、West、East),以上M1到M6是针对体素U方向的,其他方向的模板只需要把U方向的模板进行旋转获得,以UD为垂直线顺时针分别旋转90°、180°、270°得到的是East、Down、West方向的模板,前后两个方向的模板则通过另外两个方向旋转获得。模板有4类元素:0代表没有体素、1代表有体素、黑点代表不在乎它有没有体素、X.

2020-10-23 21:25:32 443

原创 中序遍历序列与前序遍历序列构造二叉树

后序遍历序列的不同在于取的是序列的最后一位。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode

2020-10-04 14:55:06 118

原创 N皇后问题

经典回溯,以一个棋盘为例,棋盘的一行代表决策树的一个层次,棋盘某一行上的一列代表一个选择,做出选择,进入递归,撤销选择,这就是回溯的模板。正如labuladong大佬总结的:递归结束的条件就是做出的选择达到决策树的叶子,将路径计入结果。选择列表中做选择,一系列选择构成路径。class Solution { bool isValid(vector<string>& track, int row, int col, int n){ //同一列上没有 .

2020-09-18 09:52:47 113

原创 2020-09-16

做到关于全排列的一道题,搜了一点关于C++next_permutation()函数的知识。原理:https://blog.csdn.net/QQ575787460/article/details/41215475用法:https://blog.csdn.net/qq_33164724/article/details/104175884?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.c

2020-09-16 22:28:24 95

原创 回溯法,括号生成

回溯简单点看也就是深度优先搜索,在递归之前做出选择,递归之后撤销选择。就比如LeetCode上的这道括号生成,n对括号,给出所有合法的括号字符串组合。//暴力求解:class Solution { //合法的条件是,任意子串的左括号数量不会少于右括号的数量 bool isValid(const string& s){ int balance=0; for(char iter : s){ if(iter == '(')

2020-09-16 20:37:06 226

原创 距离变换提取骨架

此为基于距离场提取骨架的公式,DTp表示体素p与它最近的边界体素的距离,VP代表某体素的26邻居,也就是共同分享一个顶点邻居体素,这样的体素不管是实体素还是虚体素最多只有26个。TP代表细化的参数,第二行参数求出了体素p和它26邻居的平均距离场的值,当体素p满足不等式,这个体素是线性骨架上的体素。TP越小,保留的骨架体素可能会越线性,也有可能会断裂。但是通常情况下,TP参数不容易直观上估计它的值,因此,保留的骨架体素往往都包含许多噪声。为了处理这个问题,采用的是多分辨率的办法,对TP的设定根据邻域的范围分.

2020-09-14 11:45:40 1479 1

原创 bfs拓扑排序,课程表

你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输出: false解释.

2020-09-10 20:36:38 97

原创 bfs锯齿形层序遍历

上一篇再加一个条件:先从左往右,再从右往左。。以此类推/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vec

2020-09-07 20:21:28 53

原创 bfs二叉树层序遍历

要注意的是二维vector的操作。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<ve.

2020-09-07 19:20:08 88

原创 bfs打开转盘锁

转盘锁有四位,每位10个数字,每次只能转一位,而且转的过程中不能出现deadends中的情况,求出最后转几步才能的出target。一串字符串往上往下拨一位会有8种情况,相当于一个节点有8个邻接节点,在这么一个图中,只有一个终点,而且有的节点是不能用的,题目最后转换成BFS求最短路径。而DFS求最短路径需要遍历整张图之后,保存所有的结果在选出最优的,在时间上已经败了。求最短路径的时候,要避免走重复的路,所以要记录已经走过的路,基于这一点,可以把那些deadends条件的节点当成已经走过的路,省的另开空.

2020-09-07 16:49:59 89

原创 用并查集判断图的连通性

最近写代码遇到一个问题。如图一个3*3*3的Cube当两个立方体之间共享一个面,称为面邻居(R-6);当两个立方体仅共享一条边,称为边邻居(R-18);仅共享一个点,称为点邻居(R-26)。在细化骨架的算法中,判断一个体素是否为简单体素的时候要判断,删除体素前后欧拉示性数、连通分量数是否发生改变。这个连通分量数,把立方体当成图中的点,两个立方体之间点相邻代表他们之间有边,可以转换成图深搜、广搜去判断没有中心体素前后的连通分量数。在体网格模型里,从点邻接关系独立抽出中心体素的R-26有点麻烦,所以改变角度,

2020-08-20 21:43:46 719

原创 note on cpp

//guard 防卫式声明,在cpp中不需要按顺序include,避免重复include#ifndef __COMPLEX__#define __COMPLEX__...#endif //class template//inline function macrotemplate<typename T>class complex{public: complex(double r=0,double i=0):re(r),im(i){}//initial

2020-08-19 21:17:28 123

原创 异或总结

异或(xor==^)有这些性质:交换律结合律任意数x,与其本身异或结果为0,与0异或结果为其本身利用这点性质,对一个数组仅有一个数字出现一次,其他数字都出现且仅出现偶数次的情况下,不使用hash表这些额外的空间处理,求出这个只出现一次的数字。也可以用在不引入第三方,交换两个变量的值。a=a^bb=a^ba=a^b也可以用来做奇偶判断(除2相当于右移一位)作位运算的效率是不错的,可以记住&和^这些运算性质。...

2020-08-12 15:02:44 336

原创 三维网格骨架提取之二

骨架是网格模型的中轴,可以被当做是分水岭。许多三维模型算法通过分析它的骨架而非模型本身,来降低问题的维度。骨架提取算法有3个关注点:精确的计算三维模型的骨架是一个复杂、计算量大的问题。根据骨架提取的定义,骨架化的过程对模型边界的噪声十分敏感。(通常用Smooth对模型做预处理)。参考自1.《三维模型骨架提取算法研究与实现》彭艺。2.《Skeletonization and Segmentationof Binary Voxel Shapes》...

2020-07-31 20:24:18 1301

原创 三维网格骨架提取

在面网格、体网格骨架提取的工作中,网格本身的拓扑连接关系是我们的关注点,而非网格各体素的坐标,体素就是体网格中每一个小方块,与黑白像素一样,0代表体素为空,1代表有体素,因此六面体网格是二进制体素模型的一种编码方式。在体素中也可以分别用实(solid)、虚(empty)来表示。骨架提取的工作在于,对实集合中大部分的体素逐个转换为虚集合内的体素,直到实集只剩下一个逐体素展开的链条,在数字拓扑关系的规则下,每一次对虚实集合的交界处进行处理。1.数字拓扑欧拉示性数是网格的内蕴度量,保持处理前后欧拉示性数的不变

2020-07-29 19:46:32 832

原创 01微分几何

微分几何曲线(Curve)曲线是一个函数的图像表示。就比如高中物理中最经常出现的位移-时间函数,他在二维平面由s-t表示,也就变成了参数方程。曲线的正切向量定义为曲线的求导,也就是曲线的斜率。把这个向量旋转90°就是曲线在这个点的法向量。在参数方程中,比如x1=(u, u)T和x2=(u²,u²)T这两个参数方程描述的曲线在[0,1]上是完全一样的,也就是说一条曲线当它的参数不同时,也是有不同的参数表示,这就意味着什么呢?(个人感觉参数表示是二维的微分域,三维曲线的微分域是二维的,是否也说明对于同一个意

2020-07-11 23:27:58 675

原创 HDOJ1518深搜

为什么这道题用深搜?我们可以把所有的小木棒当做图的一个数据节点,因为每一个木棒都可以和任意木棒搭配(是否符合题意另当别论),所以这个图是一个完全无向图。我们目的是要在这个完全无向图里,寻找四条符合条件、不会相交的路径。使用广搜会有相当多不必要的遍历,用深搜最符合。上代码:/*SquareProblem DescriptionGiven a set of sticks of vari...

2020-05-07 23:32:31 94

原创 平衡二叉树

旋转操作//右子树的右子树高出,要进行左旋node* LL(node* root){ node* tmp=root->right; root->right=tmp->left; tmp->left=root; return tmp;}node* RR(node* root){ node* tmp=root->left; root->left...

2020-05-06 21:38:36 88

原创 TCP连接状态一览

TCP连接状态CLOSED:初始状态,表示没有任何连接。LISTEN:Server端的某个Socket正在监听来自远方的TCP端口的连接请求。SYN_SENT:发送连接请求后等待确认信息。当客户端Socket进行Connect连接时,会首先发送SYN包,随即进入SYN_SENT状态,然后等待Server端发送三次握手中的第2个包。SYN_RECEIVED:收到一个连接请求后回送确认信息和...

2020-04-30 23:37:06 148

原创 HDUOJ-2067题解

小兔的棋盘题目不描述了,链接里。最简单的做法是递推:要求不超过对角线,将棋盘分成对称的两部分,以左下角进行说明,每个格子只能从它上面或者左边过来,可得递推式为f(i,j) = f(i-1,j) + f(i,j-1)。这个做法要开一个二维数组,空间复杂度较高。用卡特兰数也可以做。卡特兰数在这一题的讲解这篇博文就讲的很细致。博文里介绍的不超过y=0在这一题也同样适用。个人总结:只要题目可以推...

2020-04-06 18:15:07 164

原创 计网——应用层协议

计网之应用层协议本文将简要的总结DNS、FTP、TELNET、SMTP等应用层协议。域名系统DNS每个域名对应着它的IP地址。www.baidu.com就是一个域名。从右往左的顺序,分别是该域名的顶级、二级、三级、四级域名。DNS域名服务器包含了根、顶级、权限、本地域名服务器。主机向本地域名服务器的查询是递归查询。本地域名服务器向根域名服务器的查询是迭代查询。即本地向根询问,根返回目的...

2020-04-03 00:19:51 345

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除