摘要: 首先对于这个题目背景,,个人认为很(you)好(qu),,, 核心就是一个裸的二维费用背包,刚刚学习的同学参见dd大牛的背包九讲 阅读全文
posted @ 2016-10-24 21:23 CtsNevermore 阅读(210) 评论(0) 推荐(1)
摘要: 首先,,我相信第一问是可以做出来的,,,做不出来自行面壁思过,,, 第二问,我们可以发现,如果f[i]为1时应该将其g[i]初始化为1,当初就是因为这个wa了一个世纪,之后先考虑不需要判重时的情况,如果对于j < i可知如果f[i] == f[j] + 1 && a[j] > a[i] 那么存在由i 阅读全文
posted @ 2016-10-24 20:08 CtsNevermore 阅读(147) 评论(0) 推荐(1)
摘要: 原理类似桶排序,这里总是需要10个桶,多次使用 首先以个位数的值进行装桶,即个位数为1则放入1号桶,为9则放入9号桶,暂时忽视十位数 例如 待排序数组[62,14,59,88,16]简单点五个数字 分配10个桶,桶编号为0-9,以个位数数字为桶编号依次入桶,变成下边这样 | 0 | 0 | 62 | 阅读全文
posted @ 2016-10-24 15:36 CtsNevermore 阅读(129) 评论(0) 推荐(1)
摘要: 蒟蒻表示老久没看过dp题目了,,挺水的一道dp题目都没想出来,,, 首先设dp[i]表示从开始到i时间的最大空闲时间,用vector to[x] 表示从x点开始的任务结束时间,cnt[x]表示从x开始的任务个数,初始化dp[i] i = 1 -> n 为 -1, dp[0]为0 转移时,对于dp[i 阅读全文
posted @ 2016-10-24 15:16 CtsNevermore 阅读(149) 评论(0) 推荐(1)
摘要: 基本上还是01背包,首先注意必须正好花光钱,所以初始化时除了dp[0]以外其他都要设置成inf,然后因为求方案数,所以基本方程为dp[i] = dp[i-x] + dp[i],再根据inf进行一些特殊处理即得解 阅读全文
posted @ 2016-10-24 08:50 CtsNevermore 阅读(141) 评论(0) 推荐(1)
摘要: 最基本的01背包,不需要太多解释,刚学dp的同学可以参见dd大牛的背包九讲,直接度娘“背包九讲”即可搜到 阅读全文
posted @ 2016-10-24 08:26 CtsNevermore 阅读(241) 评论(0) 推荐(1)