
算法设计
别摆了,张同学
这个作者很懒,什么都没留下…
展开
-
0-1背包问题--回溯+贪心
0-1背包问题的回溯算法可以像以往的回溯算法一样一层一层的寻找,但查看限界函数Bound(i)时,如果Bound(i)<bestv则停止搜索第i层节点及其子树,否则继续搜索。显然r(i)越小,bound(i)越小,剪去的分支就会越多,为了构建更少的r(i),,将物品以单位重量价值降序排列,对于第i层背包的剩余容量,采用贪心算法把剩余的物品放入背包,此时剩余物品的价值是最优的,因为对于剩余物品不存在比上述贪心算法最优的...原创 2022-04-12 18:30:00 · 561 阅读 · 0 评论 -
算法设计——n皇后问题
回溯算法:void backtrack(int t){ int i; if(t>n){ sum++; for(i=1;i<=n;i++){ cout<<x[i]<<" "; } cout<<endl; } else for(i=1;i<=n;i++){ x[t]=i; if(place(t)) backtrack(t+1); } } 判断是否有冲突abs(t-i)==abs(x[i]-原创 2022-04-12 15:00:00 · 187 阅读 · 0 评论 -
买股票的最佳时机
买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。c++:#include <iostream>#include<algorithm>//调用max、min函数using namespace s.原创 2022-03-30 15:30:00 · 114 阅读 · 0 评论