- 博客(5)
- 收藏
- 关注
原创 完全背包问题DP详解
所以f[i -1][j - v[i]] + w[i]、f[i -1][j - 2 * v[i]] + 2 * w[i]、f[i -1][j - k * v[i]] + k * w[i -1] ... 这一坨可以等价替换成 f[i][j - v[i]] + w[i] 《注意这里第一维从上一次的 i - 1 换成本层的i了,所以优化成一维后要从小到大遍历,在遍历到 j 之前要先遍历到本层的 j - v[i],更新结果》f[i][j]表示从前i个物品中选,选出的物品体积之和
2022-08-23 01:12:29
278
原创 01背包问题DP详解
不拿时 f[i - 1][j] 与 拿时 f[i - 1][j - v[i]] + w[i] (因为要拿第i个物品,所以先把第i个物品去除掉,找出去除第i个物品所生背包容量的前i - 1个物品选出的最大值)的最大值即可。而我们要的是上一层f[i-1][j-v[i]]+w[i]的值,所以如果从大到小遍历,那么本层更小的j - v[i]在本层还没被遍历过。第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。
2022-08-22 02:38:40
530
1
原创 简单回文串问题(枚举+dp)
给定一个字符串,输出所有长度至少为 2 的回文子串。回文串即从左往右输出和从右往左输出结果是一样的字符串,比如:,都是回文字符串。特殊地:在这里不同的子串是指两个子串在原字符串中的起始或结尾位置不同。例如:字符串: 中包括两个长度为 2 的子串,分别为:(起始位置为 0),(起始位置为 1)。输入格式一个字符串,由字母或数字组成。长度 500以内。输出格式输出所有的回文子串,每个子串一行。子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。Sample 1 123321125775165561
2022-06-30 01:12:23
316
1
原创 三周训练L简单的二分
蒜头君所在的学校又迎来了一年一度的开花活动,有 nn 名学生被评为文学优秀奖,mm 名学生被评为体育优秀奖。现已知两个奖项获奖同学的编号,每个同学都有唯一的编号。只有同时被评为文学优秀奖和体育优秀奖的学生才能开花,蒜头君想知道开花的名单,请你帮他统计一下。 输入格式 第一行两个整数 n,m(1≤n,m≤10^5),分别表示文学优秀奖和体育优秀奖的获奖人数。 第二行 nn 个不同的整数,表示获得文学优秀奖的同学编号。 第二行 mm 个不同的整数,表示获得体育优秀奖的同学编号。 所有编号为正整数且不超
2021-12-29 20:34:30
3866
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人