- 博客(74)
- 问答 (1)
- 收藏
- 关注
原创 【回溯法】批处理作业调度问题 C/C++
给定n个作业的集合J = (j1,j2,j3….jn),每个作业都必须先在第一个机器执行t1时间,然后在第二个机器执行t2时间。我们的目标是找到一个作业的排列顺序,使得所有作业的总等待加执行时间之和最小。这个问题在调度理论中被称为双机流水线调度问题,是经典的组合优化问题之一。
2025-05-21 11:00:00
368
原创 【回溯法】n皇后问题 C/C++ (附代码)
在一个n*n的棋盘上放置彼此不受攻击的n个皇后,按照国际象棋规则,皇后可以攻击与其在同一行,同一列或者同一对角线的其他皇后,求合法摆放的方案数。
2025-05-21 11:00:00
707
3
原创 【操作系统】进程同步问题——生产者-消费者问题
生产者-消费者模型是操作系统中经典的进程同步问题,涉及生产者进程将产品存入缓冲池,消费者进程从缓冲池中取出产品。该模型广泛应用于打印任务队列、网络数据包处理等场景,有效解决了生产者和消费者之间的速度不匹配问题,提高了系统的并发性和效率。 在问题分析中,生产者不能向已满的缓冲池投放产品,消费者不能从空的缓冲池中消费产品,且缓冲池是一种临界资源。系统采用循环缓冲池设计,提高了存储空间利用率和指针管理效率。 解决方案包括记录型信号量、AND信号量和管程。记录型信号量通过互斥信号量、空闲缓冲区和已用缓冲区数量来管理
2025-05-20 18:44:12
1070
原创 [蓝桥杯 2024 国 B] 最小字符串
给定一个长度为N且只包含小写字母的字符串S,和M个小写字母c1c2⋯cM。现在你要把M个小写字母全部插入到字符串S中,每个小写字母都可以插入到任意位置。请问能得到的字典序最小的字符串是什么?
2025-05-20 08:00:00
1213
2
原创 [蓝桥杯 2024 国 B] 选数概率
一个数组中有a个1b个2c个3。设Pij表示在数组中随机选取两个数,其中一个数为i,另一个数为j的概率。比如P12Cabc2ab,其中CNM为组合数,表示从N个不同元素中任取M个的方案数。当a?b?c?时,满足P122091517P23104552632P132091308,且abc最小。保证abc最小的解是唯一的。你需要提交一个格式为abc的字符串。
2025-05-19 21:08:54
1175
原创 【回溯法】装载问题 C++(附代码)
共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且∑i1nwi≤c1c2。装载问题要求确定是否有一个合理的装载方案可将这些集装箱装上这2艘轮船。如果有,找出一种装载方案。
2025-05-19 20:06:05
1053
原创 【贪心】最小生成树问题 Prim算法 + Kruskal算法(C++ 附代码及实例)
设G=(V,E)是一个无向连同带权图,即一个网络E中每条边(v,w)的权为c[v][w]如果G的子图G是一棵包含G1的所有顶点的树,则称G1为G的生成树生成树各边权的总和称为该生成树的在G的所有生成树中,耗费最小的生成树称为G的,Minimum Spanning Tree,简称MST。
2025-05-11 19:16:02
857
2
原创 【贪心】单源最短路问题 Dijkstra算法 C++(附代码)
给定带权有向图G=(V,E), 其中每条边的权都是非负实数。V中的一个顶点,称为源。计算从源到所有其他各顶点的最短路径长度。
2025-05-11 11:23:48
739
原创 【动态规划/贪心】背包问题、0-1背包问题 C++(附代码)
给定n个物品和一个背包。第i件物品的价值为vi,重量为wi,背包的容量为C,每件物品只有完全装包或完全不装包两种选择,即物品不可分割。问如何安排能使背包中物品的价值最大0-1背包问题可描述为:给定c>0, wi>0, vi>0,要求找到n元向量(x1, x2, …, xn), xi∈{0, 1},使得∑wi×xi≤c且∑vi×xi最大即。
2025-04-18 10:00:00
1026
2
原创 Transformer论文笔记【纯分享】
主流的序列转录模型(由一种序列生成另一种序列,比如机器翻译)主要依赖循环或卷积神经网络。表现最好的模型在编码器(encoder)和解码器(decoder)之间加了一层注意力机制。
2025-04-17 09:00:00
1046
原创 【贪心】哈夫曼编码 C++(附代码)
•参数解释•:队列中存储的元素类型(哈夫曼树节点指针)•:底层容器(默认用 vector 实现堆)•Compare:自定义比较规则// 关键:小顶堆•为什么是?• 在C++的优先队列中,比较函数返回true时,表示a的优先级低于b• 这个比较规则会让队列按频率从小到大排列。
2025-04-16 22:20:03
825
原创 【贪心】C++ 活动安排问题
n个需要使用某个公共资源的活动ai在半开区间[si, fi)使用资源,其中si为开始时间,fi为结束时间若区间[si, fi)与区间[sj, fj)不相交,称活动i与活动j是活动安排目标:安排最大可能相容的活动集合,即安排的活动。
2025-04-16 20:18:52
521
原创 【SQL】子查询详解(附例题)
子查询的表示形式为:(SELECT 语句),它是INEXISTS等运算符的运算数,它也出现于FROM子句和VALUES子句。包含子查询的查询叫做。嵌套查询分为和。
2025-04-07 22:11:06
1199
1
原创 【二分法】最小m段和问题 C++(附完整代码)
如果分段数小于m,比如要求分4段但在当前mid下只分2段就可以,那么分4段也一定没问题,首先表明当前mid一定是可以的,不会漏掉这种情况;并且在后续二分查找新的mid时,由于返回的是。
2025-04-07 18:08:23
277
1
原创 【动态规划+优先队列】汽车加油行驶问题 C++(附完整代码及复杂度分析)
优先队列(Priority Queue)是一种特殊的队列,其中每个元素都有优先级。与普通队列不同,优先队列中的元素不是按照先进先出的顺序出队,而是按照优先级出队。在C++中,优先队列通过实现,默认是大顶堆(最大元素优先)。我们可以通过自定义比较器来实现小顶堆(最小元素优先)。动态规划记录子问题的最优解优先队列确保总是扩展最优状态正确处理了各种行驶和加油情况对于N=100的网格,该算法也能高效运行。理解这个解决方案有助于掌握动态规划和图搜索算法的实际应用。
2025-04-06 22:16:08
901
1
原创 【动态规划】图片压缩问题 C++
数字化图像时mxn的像素阵列,简单起见设定图像为灰度图,像素介于0~255之间,存储一个像素最多需要八位(八位二进制可以表示0~255)。若每个像素都存储8位,则总的存储空间为8mn位。假设一幅图像的部分二进制编码如下:我们称之为等长编码。可以发现,编码前置位的0并没有什么用,如果我们不存储这些0,可以极大减少存储空间,因此就出现了,即不同的像素用不同的位数来存储。随之而来的问题是在解码时如何将这些编码恢复成图片,解决这个问题的方法是用两个数组分别存储第i段中和第i段中。
2025-04-03 07:00:00
702
1
原创 最大字段和问题 C++(穷举、分治法、动态规划)
给定由n个整数(包含负整数)组成的序列a1,a2,…,an,求该序列子段和的最大值。规定当所有整数均为负值时定义其最大子段和为0。
2025-03-26 20:33:43
1219
1
原创 P1824 进击的奶牛(二分 C++)
Farmer John 建造了一个有N2≤N≤105) 个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1x2⋯xN0≤xi≤109他的C2≤C≤N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,Farmer John 想把这些牛安置在指定的隔间,所有牛中相邻两头的最近距离越大越好。那么,这个最大的最近距离是多少呢?
2025-03-23 17:08:55
712
2
原创 [蓝桥杯 2023 省 B] 子串简写
程序猿圈子里正在流行一种很新的简写方法:对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。例如简写成i18nKubernetes(注意连字符不是字符串的一部分)简写成K8sLanqiao简写成L5o等。在本题中,我们规定长度大于等于K的字符串都可以采用这种简写方法(长度小于K的字符串不配使用这种简写)。给定一个字符串S和两个字符c1和c2,请你计算S有多少个以c1开头c2结尾的子串可以采用这种简写?
2025-03-22 18:59:19
1200
原创 【动态规划】矩阵连乘问题 C++(附代码实例和复杂度分析)
给定n个矩阵{A1,A2,…An},其中Ai和Ai+1是可乘的。对于这n个矩阵的连乘积,可能有不同的计算次序,如何确定计算矩阵连乘积的计算次序,使得需要的数乘次序最少。
2025-03-20 22:08:06
1421
原创 [蓝桥杯 2023 省 B] 飞机降落(不会dfs的看过来)
N架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在Ti时刻到达机场上空,到达时它的剩余油料还可以继续盘旋Di个单位时间,即它最早可以于Ti时刻开始降落,最晩可以于TiDi时刻开始降落。降落过程需要Li个单位时间。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。请你判断N架飞机是否可以全部安全降落。
2025-03-17 19:36:06
2290
1
原创 [蓝桥杯 2023 省 B] 冶炼金属
小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性VV是一个正整数,这意味着消耗V个普通金属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足V时,无法继续冶炼。现在给出了N条冶炼记录,每条记录中包含两个整数A和B,这表示本次投入了A个普通金属 O,最终冶炼出了B个特殊金属 X。每条记录都是独立的,这意味着上一次没消耗完的普通金属 O 不会累加到下一次的冶炼当中。根据这N条冶炼记录,请你推测出转换率V。
2025-03-17 18:12:50
585
1
原创 【Java学习笔记】三、运算符,表达式、分支语句和循环语句
优先级运算符结合方向1[] () . ,;2从右到左3* / %从左到右4+、-从左到右5从左到右6从左到右7== 、!从左到右8从左到右9从左到右10从左到右11&&从左到右12||从左到右13?从右到左14从右到左。
2025-03-08 11:07:24
692
1
原创 【分治法】循环赛日程表问题 C\C++(附代码、实例)
本文介绍了使用分治策略解决循环赛日程表问题的方法,包括递归和非递归实现,附代码、实例
2025-02-21 19:35:18
1331
1
原创 【分治法】棋盘覆盖问题 C/C++(附代码和测试实例及算法分析)
本文介绍了使用分治法解决棋盘覆盖问题的方法,并分析了算法的时间复杂度,附代码和测试实例
2025-02-18 21:11:53
1722
1
原创 【快速幂算法】快速幂算法讲解及C语言实现(递归实现和非递归实现,附代码)
本文介绍了快速幂算法,并使用C语言分别以递归和非递归的形式实现了快速幂算法
2025-02-14 22:14:23
1159
原创 P2678 [NOIP 2015 提高组] 跳石头
为了提高比赛难度,组委会计划移走一些岩石,使得选手们在比赛过程中的最短跳跃距离尽可能长。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。块岩石与起点的距离。这些岩石按与起点距离从小到大的顺序给出,且不会有两个岩石出现在同一个位置。对于给定的跳跃距离,检查是否可以通过移动不超过M块岩石,使所有相邻岩石的距离不小于mid。,分别表示起点到终点的距离,起点和终点之间的岩石数,以及组委会至多移走的岩石数。右边界:最短跳跃距离的最大值:L(起点到终点的距离)的两个岩石移走后,最短的跳跃距离为。
2025-02-12 18:11:45
624
空空如也
mciSendingString用的时候提示我“未定义”和“找不到标识符” 怎么办?
2023-09-24
C++ 播放音乐 为什么没有声音
2023-10-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人