2019年3月1日

0-1背包

摘要: 一. 问题描述 给定n个物品,每个物品有一个重量(也可以看作体积)weight[i]和一个价值value[i], 1≤i≤n。现有一个给定容量m的背包,求解背包里装入的物品价值之和的最大值。 二. 分析 定义dp[i][j]为:背包的容量为j并且放入前i个物品的最大价值。我们对第i个物品分析,存在两 阅读全文

posted @ 2019-03-01 15:27 小叶子曰 阅读(255) 评论(0) 推荐(1) 编辑

最长连续子段和被某个整数整除(SOJ 2293)

摘要: SOJ 2293: The Longest SubSequence 题目意思很明白,找出能被给出的整数整除的最长的连续子段和,输出这个子段和的长度。算法思路很简单:对数组累计求和,然后利用模同余的思想。这里有个取模的trick注意一下,C++中一个负数$x$对一个正数$y$取模为负,例如$-9\%4 阅读全文

posted @ 2019-03-01 13:08 小叶子曰 阅读(279) 评论(0) 推荐(0) 编辑

查找过半元素(SOJ 4389)

摘要: SOJ 4389: http://acm.scu.edu.cn/soj/problem.action?id=4389 题意非常简单:给定一个数组,找出过半的那个元素。刚开始我考虑从中位数入手,因为中位数一定是所求的答案。所以,利用快排找第(n+1)/2个元素,结果超时了。后来参考了别人的算法,这道题 阅读全文

posted @ 2019-03-01 13:06 小叶子曰 阅读(158) 评论(0) 推荐(0) 编辑

0-1背包(SOJ 2222)

摘要: SOJ 2222: Health Power http://acm.scu.edu.cn/soj/problem.action?id=2222 题目意思不难理解:给出需要的能量K以及F个食物(每个食物只能用一次),每种食物i具有能量HP[i]和分数score[i]。食物应该首先满足能量要求,然后从剩 阅读全文

posted @ 2019-03-01 13:02 小叶子曰 阅读(130) 评论(0) 推荐(0) 编辑

SOJ 1093

摘要: SOJ 1093: 伊拉克 http://acm.scu.edu.cn/soj/problem.action?id=1093 题意:有m艘船,给出每艘船的长度。现在把这m艘船排成n行,每一行至少有一艘船。给出这n行每一行的长度,输出该行船的个数以及每艘船的长度。多种情况下,将长的的放在前面。 这道题 阅读全文

posted @ 2019-03-01 12:59 小叶子曰 阅读(114) 评论(0) 推荐(0) 编辑

SOJ 1030

摘要: SOJ 1030: Sum It Up http://acm.scu.edu.cn/soj/problem.action?id=1030 题意不难理解,给出一个非递增序列和一个数t,从序列中找出所有的子序列满足之和等于t。序列中的数只能用一次并且不能出现重复的子序列。跟SOJ 1027相比这一道题有 阅读全文

posted @ 2019-03-01 12:57 小叶子曰 阅读(130) 评论(0) 推荐(0) 编辑

SOJ 1027

摘要: SOJ 1027: Lotto http://acm.scu.edu.cn/soj/problem.action?id=1027 题意非常简单:给定一个序列,按字典序输出固定长度的所有子序列。标准的做法是回溯,因为题目中给出了固定长度为6,所以可以用6层循环暴力输出,代码如下: #include < 阅读全文

posted @ 2019-03-01 12:54 小叶子曰 阅读(83) 评论(0) 推荐(0) 编辑

SOJ 1082

摘要: 回溯算法最经典的问题是八皇后问题。题意很简单,给定一个n*n棋盘,放置n个皇后,满足任意两个皇后不能在同一行,同一列或者同一对角线上。显然,暴力算法可以求解这个问题。回溯算法相较于暴力算法的一个优点是从第一个状态开始,执行深度优先搜索,如果当前状态不满足,则立即停止并返回上一个状态。利用递归可以非常 阅读全文

posted @ 2019-03-01 12:29 小叶子曰 阅读(123) 评论(0) 推荐(0) 编辑

导航