算法学习
文章平均质量分 85
bmy-happy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划 dp算法
此处以求最小值为例✅ 状态定义:dp[i][j] = 将区间 [i,j] 合并成一段的最小代价✅ 转移方程:对于每个断点k,尝试将区间[i,j]分割成[i,k],[k+1,j]两端进行合并,则dp[i][j] = 区间[i,j]经过某种构造操作后的最大值(最小值)✅ 状态定义:dp[i][j] 表示将区间 [i,j] 转化为合法结构(如合法括号、回文)的最小代价(如删除次数)✅ 转移方程:情况1 s[i]==s[j] dp[i][j]=dp[i+1][j-1]情况2 s[i]!原创 2025-05-23 23:35:55 · 1127 阅读 · 0 评论 -
贪心:防晒
本文介绍了一个关于奶牛日光浴和防晒霜分配的问题。给定C头奶牛,每头奶牛需要特定强度范围内的阳光,且有L种防晒霜,每种防晒霜提供固定的阳光强度并有一定数量。目标是最大化满足奶牛日光浴需求的数量。 解决思路是将奶牛按所需阳光强度的右端点升序排序,然后依次为每头奶牛分配满足其需求的最小防晒霜。通过遍历每头奶牛的需求范围,找到可用的防晒霜并进行分配,最终统计满足需求的奶牛数量。 代码实现中,使用数组存储奶牛的需求和防晒霜的数量,通过排序和遍历完成分配过程,最终输出满足需求的奶牛数量。原创 2025-05-22 22:26:16 · 740 阅读 · 0 评论 -
dfs:小猫爬山
方法:将体积按降序排序,先放入大体积的物体,下一个物体如果能放进已经放入物体的盒子则放入,否则重新拿一个新盒子,可以使用dfs搜索回溯,找到最小的盒子数。每租用一辆缆车,翰翰和达达就要付 1 美元,所以他们想知道,最少需要付多少美元才能把这 N 只小猫都运送下山?经历了千辛万苦,小猫们终于爬上了山顶,但是疲倦的它们再也不想徒步走下山了(呜咕>_<)。N+1 行:每行一个整数,其中第 i+1 行的整数表示第 i 只小猫的重量。:给定盒子的容积、n个物体以及对应的体积,求最少需要多少盒子装入全部物体。原创 2025-05-22 17:12:57 · 836 阅读 · 0 评论 -
二分法总是学不透!
1.首先确定红蓝边界,要求的是总的最高的攻击力,我们可以先求出单次升级能够达到的最小攻击增值t,之后再遍历求和求出总值,即我们可以设蓝色区域为增加攻击不大于t,红色为小于t,只需要判断当达到该攻击增值之时已经升级的次数是否等于M即可。这个炉子有一个称作转换率的属性 V ,V 是一个正整数,这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X ,当普通金属 O 的数目不足 V 时,无法继续冶炼。接下来 N 行,每行输入一个整数,第 i+1 行输入的整数代表第 i 片区域内包含的牛的数目。原创 2025-05-22 16:37:35 · 1054 阅读 · 0 评论 -
拓扑排序: 可达性统计
我们要统计从当前点可以到达点的个数,即我们可以统计拓扑排序序列中在该点之前(包括该点)的点的数目。第一行两个整数 N,M,接下来 M 行每行两个整数 x,y,表示从 x 到 y 的一条有向边。给定一张 N 个点 M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。------ 将reach[u]的第u位设置为1,表示从u可以到达该点。采用二进制的set,bitset a(N)必须指定大小N。----- 利用位运算将点v计入点u的可达点中。输出共 N 行,表示每个点能够到达的点的数量。原创 2025-05-22 16:20:19 · 468 阅读 · 0 评论
分享