摘要: 题目大意: 就是题目名称的意思,有n种物品,一个容量为m的背包,每种物品的体积为$ a_i $,价值为$ b_i $,有$ n<=10^6,m<=10^{18},a_i,b_i<=100 $。求最大价值。 解题方法: 因为m很大,所以我们考虑将较大的体积为S的背包分为较小的两个背包,其中一个体积为x 阅读全文
posted @ 2018-10-21 21:38 Oracle_LinJH 阅读(1945) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定一个大小为n的序列$ a_1,a_2,a_3...a_n $,问从中选至多k个不相邻的数(可以小于k个),权值和最大为多少。 解题方法: 考虑选取一个数对其两边的影响,当选了$ a_p $时,p位置左侧的数和右侧的数都无法选,但存在一种决策,即放弃$ a_p $,选择$ a_pl $ 阅读全文
posted @ 2018-10-15 07:48 Oracle_LinJH 阅读(79) 评论(0) 推荐(1) 编辑
摘要: 题目大意: 有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料。现在有n头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享用到自己喜欢的食物和饮料。 解题方法: 这题算是网络流入门题,主要考如何构图,将食物置于左侧,牛置于中间,饮料置于右 阅读全文
posted @ 2018-10-05 08:10 Oracle_LinJH 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求第k小的子串。 解题方法: 首先构建后缀自动机,通过拓扑排序求出每个子串的cnt(即该串的出现次数)。然后跑DFS,类似于平衡树求rank为k的数是什么的操作,如果当前指向的儿子(假装他是儿子)的cnt小于k,则k-=cnt,并转向下一个儿子。 代码: 阅读全文
posted @ 2018-09-21 17:34 Oracle_LinJH 阅读(110) 评论(2) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-09-20 14:28 Oracle_LinJH 阅读(27) 评论(1) 推荐(0) 编辑