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