![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
1049732002624
这个作者很懒,什么都没留下…
展开
-
装箱问题
问题描述设有n个物品和若干个容量为C的箱子,n个物品的体积分别为{s1,s2,…,sn},且有s_i≤C(1≤i≤n),装箱问题是把所有的物品分别装入箱子,要求占用箱子数最少额装箱方案。装箱问题有很多种解法,我用NF(Next Fit)近似算法求解该问题。NF策略主要是从箱子的角度考虑,要求尽量把已打开的箱子装满,装满一个(装不下了)再到下一个,以期达到使用箱子数目最少的目的。NF策略始终维持一个当前打开的箱子,它依次处理物品,当选择物品时,检查物品能否装入打开的箱子,如果能装入,则装入,否则,封闭原创 2020-12-25 09:06:56 · 8112 阅读 · 3 评论 -
战车问题
问题描述在棋盘上放置彼此不受攻击的战车。其中,战车可以攻击与之处在同一行或者同一列上的战车。在棋盘上的若干个格中设置了壁垒,战车无法穿越壁垒攻击别的战车。对于给定了设置了壁垒的n×n格棋盘,设计一个概率算法,在棋盘上放置尽可能多的彼此不受攻击的战车。算法设计思想每次放下一个棋子之后,先枚举其状态是横的还是竖的。然后,给它攻击范围内的所在地的bo[x][y]–,不能直接置为false,因为bo[x][y]代表的是x,y这个坐标能放棋子的程度,假想一下,如果一个位置,你两个已经放下的棋子都能攻击得到,如原创 2020-12-25 09:07:06 · 324 阅读 · 0 评论 -
石子合并问题
问题描述有n堆石子排成一排,每堆石子有一定的数量,先要将n堆石子合并为一堆,合并只能每次将相邻的两堆石子合并为一堆,每次合并花费的代价为这两堆石子的和,经过n-1次合并后成为一堆,求出总代价的最小值。状态转移方程其中 表示从i到j花费的最小代价, 表示从i到j的所有石子数量和。算法思想使用动态规划的思想。一共有n堆石子,每次合并相邻的两堆石子,合并后得到两堆石子的数量总和。最终合并后得到的数量和最少。我们设sum(i,j)定义为第i堆石子到第j堆石子合并后得到的总数量,a(i)为第i堆石子的数原创 2020-12-25 09:07:22 · 586 阅读 · 0 评论 -
ACM汽车加油问题
问题描述一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在那些加油站靠车加油,使沿途加油次数最少。并证明算法能产生一个最优解。对于给定的n和k个加油站位置,计算最少加油次数。输入描述:输入数据的第一行有2 个正整数n和k(n≤5000,k≤1000),表示汽车加满油后可行驶n公里,且旅途中有k个加油站。接下来的1 行中,有k+1 个整数,表示第k个加油站与第k-1 个加油站之间的距离。第0 个加油站表示出发地,汽车已加满油。第k+1 个加油站表示目的地。输出描述:将计算出的原创 2020-12-25 09:07:32 · 642 阅读 · 0 评论