07 2015 档案
摘要:枚举最终无法选取的最小物品,那么显然比这个物品代价小的物品都必须要选。 对于比这个物品代价大的物品,DP计算方案数即可。至于物品价值相同的根据排序之后的顺序视为不同就可以了。设 dp(i,j) 表示选取i~n个物品,花费j元的方案数,dp(n+1,0)=1,dp(i,j)=dp(i+...
阅读全文
摘要:很有有意思的树形DP题意:给一棵n个结点的树, 结点编号为1~n, 每条边都有长度. 有k个机器人从S点出发,问让机器人遍历所有边,最少路程和是多少?1#include #include #include #include #include #include #include #in...
阅读全文
摘要:树形背包#include #include #include #include #include #include #include #include #include #include #include #include #include const int maxn = 3005...
阅读全文
摘要:一颗树,n个点,每个点上有一个权值,求从1出发,最多走k步,遍历到的点的最大权值和 (每个点权对权值和最多只能贡献一次)(1 #include #include #include #include #include #include #include #include #includ...
阅读全文
摘要:树状数组套主席树好像没有什么特别的地方,就是要注意卡空间。先处理出初始序列的主席树 O(N∗log(N+M)) 然后用树状数组记录修改 O(M∗logN∗log(N+M))时间复杂度/空间复杂度: O((N+M∗logN)∗log(N+M))#include #include #...
阅读全文
摘要:Manacher算法, 用来解决 最长回文子串 一类问题,俗称马拉车算法,时间复杂度 O(n)#include#include#include#include#includeconst int maxl = 1000005;const char end[5] = "END";#def...
阅读全文