07 2015 档案

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