- 博客(39)
- 收藏
- 关注
原创 语言/C++/结构体内存对齐
数据成员的偏移量一定是该类型的大小的整数倍(也叫对齐数,int的对齐数4,所以对齐4的整数倍。如果结构体B含结构体A,A的偏移量对齐A内最大的对齐数x,B的最大对齐数也要参考x来决定。 可以通过offsetof查看数据成员相对于结构体起始位置的偏移量 => 某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。,但是支持这个操作的cpu会需要多次访问,导致性能降低。结构体所占内存大小为内部最大对齐数的整数倍。 访问地址不等于数据大小整数倍的访问叫。**取消设置的默认对齐数。
2025-03-17 10:41:02
356
原创 多线程中,子线程资源回收函数pthread_join()作用的实验
pthread_join的主要作用是回收已经结束的子线程的栈内存,僵尸子线程的栈内存不会自动被清扫。
2024-12-24 12:02:35
272
原创 P1106 删数问题
注意:每次删了一个左边大的数需要重新从左边找,因为,删数可能导致新的可能左边大的情况(理论上可以优化处理,做到线性复杂度,我嫌麻烦没有优化,因为我用的是单链表,不方便删了结点之后“回头”得出:从左到右,相邻先删左边大的,左边不大就继续找,知道找到一个左边大的,如果最后没找到,从尾部删需要的个数个数即可。个数之后总数最小,从左往右找,相邻的两个数,如果左边比右边大,删左边,数字变小。以前的数字是非递减的,也就是说,右边肯定至少不比左边小,优先删右边的数,如下。的最高位数,决定着整个数的大小。
2024-03-25 13:03:48
459
原创 素数间隔 Prime Gap(Unknown error)
我没有AC,一直是未知错误,但是测试数据是正确的(自认为是正确的,有看出来为啥的朋友能指出就好了orz这题让我久违地唤醒了我曾经题家的直觉题目给出了素数的最大值,1299709,1e6的数量级,可以考虑直接线性筛筛完,存好所有的素数,然后二分查找出对应位置即可找到对应的“素数间隔”题目好像也没给出数据量,但我的时间复杂度是O(logn+m),m=1e6,n未知,看给的数据(是这么个复杂度吧,好像是可以写成O(m),但是m又是已知的,可能算O(1),emmmm,那就是O(logn)了又。
2024-02-04 09:43:07
579
原创 关键路径思路、代码
求顶点(事件)的最早发生时间(ETV)、最晚发生时间(LTV)来求活动的最早、最晚发生时间。就是求边(活动)最早发生时间和最晚发生时间,如果相等,就是关键路径。ETV = max( 入边权值 + 入边过来顶点的ETV)LTV = min (出边到的顶点的LTV - 出边权值)AOV图的边加上权值表示活动进行到下一个顶点需要的时间。可以依照拓扑序列的顺序计算ETV和逆的拓扑序列求LTV。AOE网默认只有一个起点,一个终点。AOE起点到终点的最长路径就是。终点有: LTV = ETV。求完ETV后,求LTV。
2024-02-01 14:47:36
484
原创 拓扑排序代码 & 双向链表(带头尾指针)代码记录
标记点的入度,从入度为0的开始,访问一个点,删除它对应的边,更新其他点的入度,重复,直到所有的点全部输出(点没输出完,剩余顶点没有入度为0的顶点,说明可能有环。使用了自己写的双向链表式队列,实现待处理拓扑排序点的存放。表示工程的有向图,一定是个DAG(有向无环)网。根据AOV网作出的流程顺序。
2024-01-30 16:35:45
383
原创 二叉树的节点数量关系,度为2的节点比叶子结点少一个
证明:n结点总数n0叶子结点总数n1度为1结点总数n2度为2结点总数(1)nn0n1n2显然因为除了根结点都有双亲,所以结点总数可以看作双亲数+1,故有:(2)n1n12×n2由(2)-(1)n21−n00有n21n0。
2024-01-18 09:48:55
689
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人