首页 > TAG信息列表 > papamelon
papamelon 305. 求和方案 Sumsets
https://www.papamelon.com/problem/305 给你一个数N,只能用2的幂次求和组成,问总共有多少种方案. 输入 包含多组测试数据,输入以EOF作为结束标志. 每组测试数据包含一个整数NN. 1≤N≤1,000,000 输出 输出一个整数. 由于结果可能会非常大,因此输出末尾的九位数. 样例 1 输入 7papamelon 218. 01背包问题(挑战程序设计竞赛)
地址 https://www.papamelon.com/problem/218 经典的动态规划问题。 网络搜索背包九讲可以找到详细的文字和视频题解 dp[i][j]表示使用前i个物品装入背包j重量的最大价值. 本题状态转移方程 dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]) dp[i][j] = dp[i-1][j] 表示不选择papamelon 257. 下界 lower_bound(挑战程序设计竞赛)
地址 https://www.papamelon.com/problem/257 二分查找模板题 二分有两个模板 一个是找到符合查询数字的下边界<= 一个是找到符合查询数字的上边界>= 记熟会方便很多. 本题是查找第一个大于等于k的数字 是下边界 #include <iostream> using namespace std; const int N = 10000papamelon 212. 区间调度问题(挑战程序设计竞赛)
地址 https://www.papamelon.com/problem/212 解答 贪心算法 选择符合条件中区间结束比较早的那个区间。 可以证明,同样的选择区间中,选择较早结束的区间至少不会得到比选择较晚结束的区间更差的结果。 基于以上规则,我们将区间按照结束时间排序。 每次选择起始时间比当前结束时间papamelon 201. 部分和问题
地址 https://www.papamelon.com/problem/201 解答 使用dfs遍历各个数字选择或者不选择的情况,判断是否能够得到指定的和 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; const int N = 50; int arr[N]; int n, k,sum; int dfs(int idx) { if