- 博客(11)
- 收藏
- 关注
原创 5-14 布线问题(算法设计与分析)
n个元件,两个元件间的布线数量connij,两个元件在线路板的位置分别为rs,则距离为distrsabsr−s,布线成本cost1⩽i⩽j⩽n∑connij×distrs要求:① 最少费用min_cost② 对应的布线方案,即给出元件在布线板上的一个排列约束:如果能够想到布线方案就是元件的一个排列,那么约束其实就是排列的约束。
2024-05-11 11:11:29
1657
2
原创 求关系模式的候选码,主属性和非主属性(数据库系统)
简单来说,候选码是一组属性,可以由这组属性通过函数依赖推出其他属性一般而言,求的候选码是最简候选码(属性尽可能少)
2024-05-04 11:15:01
1689
1
原创 5-12罗密欧与朱丽叶的迷宫问题(算法设计与分析)
已知:给一个m×n迷宫,一个起点pq,一个终点rsk个障碍,有 8 个方向可以走要求:① 最少转弯次数;② 不同的路线个数(满足最少转弯);③ 给出一条路线约束:① 可走的格子仅能走 1 次;② 所有格子都要走;③ 转弯次数最少这里只需要给出一条路线。这条路线设定为第一次找到的最少转弯的路线3×4的迷宫,起点11,终点22,有 2 个障碍在12和34一条最少转弯次数的路线如图,一共转弯 6 次。
2024-05-03 19:43:37
1571
2
原创 3-17 字符串比较问题(算法设计与分析)
/ 终止条件// 递归DP 定义为二维数组,DP[i][j]表示指针ij所指向情况的最小距离值。
2024-04-14 11:53:24
1282
1
原创 4-15 最优分解问题(算法设计与分析)
Input:一个正整数nOutput:一个乘积值X_max⎩⎨⎧niabc⋯Xia∗b∗c∗⋯XmaxmaxXiwhereabc⋯为了分析方便,不妨假设abc⋯对于示例,给出正整数 10,分法10235⟹X2∗3∗530是最大的。
2024-04-13 12:17:52
1490
原创 4-13 非单位时间任务安排问题(算法设计与分析)
DP 要和题目所求的状态相关,因此 DP 数组记录的是最小误时惩罚时间现在有一个问题:DP 数组应该设定为几个维度的?——看状态与哪些量相关由于截止时间did_idi的限制,当处在某一个时间点ddd的时候,有的任务可能无法完成,导致了误时惩罚另一方面,每一个时间点,任务iii做还是不做的误时惩罚状态是不同的由此,定义二维 DP 数组dp[i][d],其中i表示第i项任务,d表示当前的时间点dp[i][d]表示当前截至时间点为d时任务i的最小误时惩罚punishi。
2024-04-12 21:15:27
1330
原创 3-6 租用游艇问题(算法设计与分析)
如果起点没有固定,那么我们可能就需要设定二维DP数组,一个维度表示起点,一个维度表示终点但这道题固定了起点为站 1,因此只需要一个维度表示终点即可,所以设定DP一维数组DP[k]表示从站 1 到 站 k 的最少租金一开始DP[k]数组的值都初始化为r[1][],即从站 1 到各个站 X 的租金之后考虑每一个选择,也就是每一个站点 X,如果归还了游艇,能否减少租金?状态转移方程:很像图论中的Dijkstra算法……(
2024-03-29 14:42:56
1180
1
原创 3-4 数字三角形问题(算法设计与分析)
我把DP数组定义为二维数组,DP[i][j]表示以 第 i 层的第 j 个节点(i,j)作为结尾的路径和最大值这样一来,题目要求的其实就是最后一层的选择某个节点的最大值所以我还需要遍历最后一层,选出其中的最大值作为返回。
2024-03-29 14:10:43
815
1
原创 CRC并行编码的纠错电路分析(计组)
事实上,观察多路选择器的所有选择,除了 0000,其余的都是只有1位是1,比如4000 H= 0100 0000 0000 0000 B,也就是说只能纠正一位错。也就是数据位的第2位发生了错误,可以看到第 6 位确实是数据位的第 2 位(数据范围:第 5 ~ 20 位,第 21 位即最高位设为总校验码)计算出每一位出错的选择之后,剩下的位置就是多位错和校验码错的情况,这两种情况我们不对数据纠错,因此选择为0000。22位CRC编码,数据位16位,5位校验码,另设1位总校验码。各个选择的数值是如何来的。
2024-03-17 19:09:04
647
1
原创 2-3 半数集问题(算法设计与分析)
实际上,当我们生成了“1 + 6 + 32 = 1632”时,就没有必要通过“16 + 32”的方式再去计算,直接让计数器。运行上面的代码时发现,一旦数据量变大,如达到 10^3 的量级时,程序运行很慢,这涉及到了递归时的重复子问题。如:计算出“1”的计数结果为0,“2”的为1,“3”的1,“4”的为3(14、24、124三种情况)……,利用一个数组存储计算过的数,如果出现相同的计算结果,那么不用进入递归,直接处理计数器即可。那么当计算“16”的计数情况时,需要从 1 选择到 8,选择1的时候,0种情况,
2024-03-17 12:11:19
1979
1
原创 1-2 字典序问题(算法设计与分析)
一开始我的思路是按照进制转换,a~z的进制是26,所以ab = 27 * 1 + 1 * 2 = 29但题目有个条件,即字典序排序,也就是不可能出现诸如“aa”、“ba”的情况,这样就会使得后面的编码向前移动,处理起来很麻烦。
2024-03-02 14:15:27
1401
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人