上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页
摘要: 分析: 树形DP中的一种,基环树DP 针对每一个环跑DP,f[i],g[i]分别表示选或者不选,之后我们注意每次遍历的时候,不要重复遍历。 附上代码: 阅读全文
posted @ 2018-05-23 22:27 Winniechen 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 分析: 构造法...每次找到一个没有被选过的数,用这个数推出一个表格,之后在表格上跑状压DP,时间复杂度O(n) 附上代码: 阅读全文
posted @ 2018-05-23 22:23 Winniechen 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 分析: 这个题的状压DP还是比较裸的,考虑将疾病状压,得到DP方程:F[S]为疾病状态为S时的最多奶牛数量,F[S]=max{f[s]+1}; 记得预处理出每个状态下疾病数是多少... 附上代码: 阅读全文
posted @ 2018-05-23 22:21 Winniechen 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 分析: 我们如果选择点i,那么我们不能选择i-1和i+1,如果没有这个限制,直接贪心就可行,而加上这个限制,我们考虑同样贪心,每次选择i后,将点i-1,i+1从双向链表中删除,并且将-a[i]+a[i-1]+a[i+1]推入堆中,处理K次,得到最优答案 附上代码: 阅读全文
posted @ 2018-05-23 21:02 Winniechen 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 分析: 这个题一看就是裸的树剖... 唯一值得考虑的就是它的根一直在变化,我们可以这样想,如果假根在这个点的子树外,那么直接将这个点的子树作为答案区间,如果在子树内,则相对复杂,我们假设son为root所在的节点x的儿子的子树内的儿子编号,那么答案就是min(1到idx[son]-1,idx[son 阅读全文
posted @ 2018-05-23 20:58 Winniechen 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 分析: 首先,连续选择一段必定最优... 区间DP,f[i][j]表示从i开始,连续j个被吃掉了,并且,牛在i处,g[i][j]则表示在i+j-1处 f[i][j]可以从g[i+1][j]和f[i+1][j]转移,g[i][j]可以从g[i][j-1]和f[i][j-1]转移,转移方程: f[i][ 阅读全文
posted @ 2018-05-16 21:01 Winniechen 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 分析: 这是今天下午的考试题,推了2个小时,考试中A掉了 首先,循环串通过字符串hash可以O(1)判断:get_hash(l,r-len)==get_hash(l+len,r);显然可证。 我们其次可以发现,循环串的长度是所求串的长度的约数 之后我们可以发现,如果两个不同的子串是循环串,那么这两个 阅读全文
posted @ 2018-05-15 20:57 Winniechen 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 分析: Dijkstra求最短路树,在最短路树上进行操作,详情可见上一篇博客:http://www.cnblogs.com/Winniechen/p/9042937.html 我觉得这个东西不压行写出了有点丑...之后写了一个压行后更丑的... 附上压行后的代码: 阅读全文
posted @ 2018-05-15 20:46 Winniechen 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 分析: 树剖裸题,[Usaco2009 Jan]安全路经Travel 的简化版 剖开最短路树,遍历每一条没在最短路树上的边。 这种情况下,有且仅有u到v路径上,出来lca之外的点能够通过这条边到达,并且,路径长度为:dis[u]+dis[v]+val-dis[x];(dis[x]是从根到x的最短路长 阅读全文
posted @ 2018-05-15 20:41 Winniechen 阅读(250) 评论(0) 推荐(0) 编辑
摘要: A*属于搜索的一种,启发式搜索,即:每次搜索时加一个估价函数 这个算法可以用来解决K短路问题,常用的估价函数是:已经走过的距离+期望上最短的距离 通常和Dijkstra一起解决K短路 BZOJ1598:牛跑步 求前K短路 因为A*算法我们每次用来向外拓展的是估价函数最小的点,那么,我们必定能够得到, 阅读全文
posted @ 2018-05-15 20:34 Winniechen 阅读(271) 评论(0) 推荐(1) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 下一页