上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 75 下一页
摘要: 原题链接 考察:线性DP 最长上升子序列+最长公共子序列的综合版 思路: 要写这道题必须明白最长上升子序列+最长公共子序列的推导过程. 由最长上升子序列: 它的状态是由倒数第二个数字来分类,也就是说我们必须固定倒数第一个数字 由公共子序列: 有a[i]b[j]的有无来分类,f[i][j]代表1~i和 阅读全文
posted @ 2021-02-06 18:30 acmloser 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:线性dp 思路: 第一问是套模板. 第二问的思路是要想到增加序列个数的条件.由贪心法,我们求不上升子序列的组数.对于一个数x,假设已有两组a,b.如果a,b内没有比x更大的数.说明我们需要重新开辟一组.如果x较小,因为不允许插入,所以我们只能在末尾加入元素,我们要保证序列个数最少,就 阅读全文
posted @ 2021-02-06 14:41 acmloser 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:线性dp 题目本质:求最长上升子序列+下降子序列 易错: 这种题一般都要求下降子序列 j>=i,避免 100 100 100这种数据 也可以用朴素法求,但是要预处理长度数组. 1 #include <iostream> 2 #include <cstring> 3 #include 阅读全文
posted @ 2021-02-06 00:31 acmloser 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察: 线性dp 错误思路: 先走一遍,将走过的地方mp标为0 这个算法本蒟蒻想不出来怎么实现.... 正确思路: 可以将两次走当作两次一起走.设第一次为A,第二次为B.只要步数相同,A和B的横纵坐标和就会相同.本来是需要4维数组,所以可以优化到三维. f[k][i][j]表示的就是到mp 阅读全文
posted @ 2021-02-05 17:46 acmloser 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:多重背包dp 坑爹题目,敲半天代码发现题目意思都弄错了 这道题的ai 不是i木块的高度和不准超过ai 而是i木块在整个电梯的高度不允许超过ai 我还奇怪为什么题解都没累加答案.... 这道题本蒟蒻不会用二进制优化..如果用了不知道怎么处理它属于哪个物品. 思路: 显而易见需要将木块按 阅读全文
posted @ 2021-02-03 17:17 acmloser 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:多重背包dp 实际上是考察多重部分和的问题. 在本题如果直接用二进制优化时间复杂度是108 会TLE.因此必须优化 多重背包问题中f[j] = 1是因为上一轮f[j] = 1或者本轮f[j-v] = 1.如果f[j]在枚举第i-1种硬币时就已经为1,那么f[j]在第i轮就没必要在赋值 阅读全文
posted @ 2021-02-03 14:02 acmloser 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:完全背包dp+线性代数 思路: 这道题其实是求给定a数组的极大无关向量组. 这里要能分析出一些性质: 如果(a,n)能被(b,m)所替代,那么a数组能被b数组表示 b数组中gcd>1的一对数,大的没必要存在 b数组是a数组的一部分元素. 假设b数组能表示a数组,且存在一个数x属于b数 阅读全文
posted @ 2021-02-02 18:38 acmloser 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:完全背包dp 思路: 写这道题需要有前置知识: 已知互质的数a与b,最大的不能由它们表示的数是(a-1)*(b-1)-1. 现在新加入数字c,不能表示的范围应该变小,因为>(a-1)*(b-1)-1的数都能被表示. 现在给出n个正整数,那么最大的不能由它们表示的数<10000. 确定 阅读全文
posted @ 2021-02-02 15:46 acmloser 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:完全背包dp 或者 打表 思路: 1.如果知道公式的话,三行代码就可以解决,答案是(n-1)*(m-1)-1.前提条件是n与m互质. 2.如果不知道,可以用暴力dfs打表.先固定一个数n,再看m变化时答案如何变化.eg:当n==3,ans在m情况下每次比m-1多2.最后说不定能推出公 阅读全文
posted @ 2021-02-02 15:33 acmloser 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:完全背包dp 人傻了,本来还想先用二维,结果没写出来,一脸懵逼看了题解.题解全是一维,最后发现是我f[i][j] = min(f[i-1][j],f[i][j-i*i]+1)的第二个i写成了i-1,板子背错了= = 这道题的物品体积是i*i,价值是1.这样才能算出个数来 1 #inc 阅读全文
posted @ 2021-02-02 12:26 acmloser 阅读(70) 评论(0) 推荐(0) 编辑
上一页 1 ··· 55 56 57 58 59 60 61 62 63 ··· 75 下一页