01 2021 档案

摘要:线性DP(1) 1.LIS 问题:给定一个长度为n的数组,找出一个最长的单调递增子序列。 例如:{5,6,7,4,2,8,3}最长的是{5,6,7,8},长度为n。 例题: HDU - 1257 该题就是给出一个序列,然后求最少可以有多少个单调下降的序列。 每一个下降序列都有一个最小值Ai,每一个A 阅读全文
posted @ 2021-01-27 22:16 Paranoid5 阅读(80) 评论(0) 推荐(0) 编辑
摘要:背包DP(2) 1.多重背包 题目:n种物品,m的背包。第i种物品,最多有s[i]件,每件体积v[i],价格是w[i]。求解选择哪些物品放入背包,不超过背包,价值最大。输出最大价值。 (1)朴素算法 不如这样想,取s[i]件物品,就是s[i]件一样的物品。即转换为01背包。 令k1为s[i]的求和 阅读全文
posted @ 2021-01-25 00:34 Paranoid5 阅读(68) 评论(0) 推荐(0) 编辑
摘要:背包问题 1.01背包 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 Hdu 2602 Bone Collector 样例输入: 5 10 1 2 3 4 5 5 4 3 2 1 样例输出: 阅读全文
posted @ 2021-01-23 17:54 Paranoid5 阅读(75) 评论(0) 推荐(0) 编辑
摘要:题解 F 假设每一个点为ai,每个人的蛋糕为x 把每个点ai放在数轴上,不难发现,|ai-x|为x到ai的距离。任取两个值ai,aj,发现x只要是 ai到aj上的任意一个点即可。 答案就是若干对aj-ai求和。 int a[N]; int main() { int n; cin>>n; for(in 阅读全文
posted @ 2021-01-12 18:04 Paranoid5 阅读(147) 评论(0) 推荐(0) 编辑
摘要:数论(1) 1.埃氏筛 素数的n倍一定不是素数,所以就打表,筛选素数。 const int maxn = 1e6+10; bitset<maxn> isprime; void init(int n){ isprime.set();//清空 isprime[0] = isprime[1] = 0; i 阅读全文
posted @ 2021-01-08 13:17 Paranoid5 阅读(95) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示