自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法设计与分析】最大流应用问题(值班问题)

但是因为节点层次的改动,s->6->1->2->3->t这条路径可选了,对本条路径作同样的处理。例如在以下情况中,找到路径s -> v1 -> v3 -> t之后,回溯到节点v1,尝试路径s -> v1 -> v4 -> t,发现长度也是最短的,则标记该路径,再次进行回溯,发现路径s -> v2 -> v4 -> t也是最短路径。在上述的简单算法中,我们得到的结果可能是错误的,是因为求解的过程与增广路径的选择顺序有关,在路径选择的过程中,一旦选择了一条坏的路径,算法就无法找到正确的最大流。

2023-06-08 11:57:28 471 2

原创 【算法设计与分析】图论(桥)

在图论中,一条边被称为“桥”代表这条边一旦被删除,这张图的连通块数量会增加。等价地说,一条边是一座桥当且仅当这条边不在任何环上。一张图可以有零或多座桥。图 1 没有桥的无向连通图 图 2 这是有16个顶点和6个桥的图(桥以红色线段标示)

2023-05-24 10:58:23 1321

原创 【OpenHarmony】任务管理

在该函数中,使用任务变量初始化结构体TSK_INIT_PARAM_S设置任务的属性字段,最终使用LOS_TaskCreate()创建任务Task1。可以看到虽然task2晚于task1被创建,但是由于task2的优先级高于task1,所以task2先运行。通过对创建任务函数的调用完成task1和task2的创建,此时task1先于task2被创建。然后task1和task2交替运行,task1每秒打印一次sum值,task2每3秒打印一次。在task_demo目录下编辑BUILD.gn文件。

2023-05-18 00:05:10 427

原创 【OpenHarmony】内核通信(消息队列)

在/home/openharmony/device/qemu/arm_mps2_an386/liteos_m/board路径下的main.c文件中进行修改在/home/openharmony/kernel/liteos_m/components/shell路径下的BUILD.gn中添加用户命令在/home/openharmony/kernel/liteos_m/components/shell/src/cmds路径下添加用户命令源文件my_shellcmd.c(void)argc;

2023-05-17 23:52:07 267

原创 【算法设计与分析】分治法(最近点对问题)

考虑最近点对有可能是上述某次递归调用找出的距离为d的点对,也有可能是SL中的一个点与SR中的一个点形成的点对。在分治开始前,已经对X和Y数组进行递增排序,此时取中间点将点集划分为左区域SL和右区域SR,SL中所有点都在中线上或是在中线的左侧,SR中所有点都在中线上或是在中线的右侧。遍历n个点与剩余n-1个点之间的距离,在计算点对距离时不断更新最短距离的值,遍历完所有点对后即可求得最短点对距离。遍历一点在Y’L中,另一点在Y’R中的所有点对距离,并返回得到的最小点对距离。此方法的时间复杂度为O(n²),

2023-05-05 23:55:52 2803

原创 【算法设计与分析】回溯法(地图填色问题)

存储好数据后分别对三个数据集进行测试,数据集le450_5a和le450_15b在较长的时间内程序无响应,对其进行检查发现数据集le450_5a在区域103,184之间反复回溯,le450_15b在316,226之间反复回溯,如下所示,在WA中涂上红色,那么删除NT和SA可选颜色中的红色,在Q中涂上绿色,此时NT和SA中都只剩下蓝色可填,如果在NT中涂上蓝色,那么SA中无可选颜色。进行填色,因为度数越大的节点受到其他节点的约束就越大,先填涂其他节点容易导致度数大的节点无可填颜色,延长运行时间。

2023-05-05 23:40:08 1711

原创 【算法设计与分析】动态规划(背包问题)

我们需要用鸡蛋确认在多高的楼层鸡蛋落下来会破碎,这个刚刚使鸡蛋破碎的楼层叫门槛层,门槛楼层是鸡蛋开始破碎的楼层,上面所有楼层的鸡蛋也都破了。如上图所示,如果有 5 层,我们只有1个鸡蛋,要找到门槛层,则必须尝试从每一层一层一层地放下鸡蛋,从第一层到最后一层,如果门槛层是第 k 层,那么鸡蛋就会在第 k 层抛下时破裂,应该做了k次试验。给定建筑物的一定数量的楼层(比如 f 层)和一定数量的鸡蛋(比如 e 鸡蛋),找出阈值地板必须执行的最少的鸡蛋掉落试验的次数,注意,这里需要求的是试验的测试,不是鸡蛋的个数。

2023-05-05 23:23:48 846

原创 【计算机系统(2)】逆向工程

考虑到本题的考点是循环语句和数组,并且发现在400ea7处调用了函数read_six_numbers,因此猜测与包含6个元素的数组有关,并且在read_six_numbers函数中出现了sscanf的字眼,该单词是用户输入的意思,那么猜测该函数实现的功能就是读取用户输入的包含6个元素的数组。可以看到在前面的几行中,出现了一个用户输入函数sscanf的调用,查阅资料发现sscanf函数有多个参数,第一个参数为用户输入的字符串,第二个参数为拆分字符串的格式,后面的参数用于储存解析后的数据。

2023-04-22 20:17:33 764

原创 【JUC并发编程】集合类不安全和Callable

在并发下ArrayList不安全,报错java.util.ConcurrentModificationException并发修改异常解决方案。

2023-04-17 17:02:55 61

原创 【HarmonyOS】单向数据流和Flex布局

MVVMMVVM是Model-View-ViewModel的简写,是M - V - VM 三部分组成。MVVM就是将其中View的状态和行为抽象化,其中ViewModel将视图(即View)和业务逻辑分开,它可以去除Model的数据的同时帮忙处理View中由于需要展示内容而涉及的业务逻辑。MVVM采用:双向数据绑定。View中数据变化将自动反映到Model上,反之,Model中数据变化也将会自动展示在页面上。ViewModel就是View和Model的桥梁。

2023-04-17 16:55:27 355

原创 【HarmonyOS】编写简单的登录页面并实现跳转

首先简单实现一个登录页面,在xml文件下编写布局如下所示界面如图所示。

2023-04-12 22:47:35 1093 1

原创 【JUC并发编程】用Condition实现精准唤醒/理解八锁现象

此时先打印打电话,因为static是静态方法,在静态方法中synchronized锁锁的是Phone的Class模版,由于Phone的Class模版全局唯一,所以两线程共用一把锁,发信息线程先获得锁,所以先执行。此时先打印打电话,再打印发信息,因为sendMessage方法中的锁锁的是Class类模版,call方法中的锁锁的是调用者,因此是两把不同的锁。此时先打印打电话,后打印发信息,因为有两个不同的对象,所以有两个调用者,即两把锁,由于sendMessage方法中存在延时,所以先打印打电话。

2023-04-12 22:35:18 179 1

原创 【JUC并发编程】关于锁和虚拟唤醒问题

假设当前有4个线程分别为A,B,C,D,其中A、C线程是生产者,B、D线程是消费者。多线程环境下,有多个线程执行了wait()方法,需要其他线程执行notify()或者notifyAll()方法去唤醒它们,假如多个线程都被唤醒了,但是只有其中一部分是有用的唤醒操作,其余的唤醒都是无用功;而在Lock中,会分情况而定,Lock中有尝试获取锁的方法,如果尝试获取到锁,则不用一直等待。,其中出现了2、3这样的值,显然不符合预期,出现了num重复++的问题,即是虚假唤醒的问题。如果线程A发生阻塞,则线程B会。

2023-04-11 17:18:55 136 1

原创 【计算机系统(2)】数据表示实验

爬了差不多一周终于是爬完了,部分函数实在不懂参考了其他博主的文章,可自行查阅。有错误欢迎指正。一、实验目标了解各种数据类型在计算机中的表示方法掌握C语言数据类型的位级表示及操作二、实验环境计算机(Intel CPU)Ubuntu 64位虚拟机三、实验内容与步骤1、根据bits.c中的要求补全以下的函数:2、在Linux下测试以上函数是否正确,指令如下:*编译:./dlc bits.c*测试:make btest./btest四、实验结果1、根据。

2023-04-07 22:09:28 2232 2

原创 【算法设计与分析】排序算法性能分析

由本次实验可知,效率较高的排序算法为快速排序和合并排序,两者效率非常接近,其他三种排序算法效率较低,其中选择排序和插入排序效率较为接近。此外,五种排序算法的实际运行效率和理论运行效率曲线基本吻合,可以推测选择排序、冒泡排序、插入排序的时间复杂度为O(n²),合并排序、快速排序的时间复杂度为O(nlogn)

2023-04-02 15:06:13 447 1

空空如也

空空如也

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

TA关注的人

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