题目大意:给定一棵树,边上有边权,m次询问,每次选定一些关键点,求将1号节点与所有关键点都切断所需的最小花销
关键点的总数
首先我们考虑暴力想法
令f[x]表示切断以x为根的子树中所有关键点的最小花销
g[x]表示x是不是关键点
那么对于x的每个子节点y有f[x]=Σmin(g[y]?INF:f[y],Distance(x,y) )
这样每次暴力做一遍树形DP,时间复杂度是O(n*...
分类:
其他好文 时间:
2015-01-07 16:57:32
阅读次数:
180
题目大意:
思路:一看各种后缀那就是后缀数组没跑了。
求出sa,height之后就可以乱搞了。对于height数组中的一个值,height[i]来说,这个值能够作为lcp值的作用域只在左边第一个比他小的位置到右边第一个比他小的位置。这个东西很明显可以倍增RMQ+二分/单调栈。
之后就是数学题了
Σlen[Ti] + len[Tj] = (len + 1) * len * (len ...
分类:
编程语言 时间:
2014-12-30 23:47:04
阅读次数:
499
这道是求长度不小于 k 的公共子串的个数...很不幸,我又TLE了...解法参考论文以及下面的链接http://www.cnblogs.com/vongang/archive/2012/11/20/2778481.htmlhttp://hi.baidu.com/fpkelejggfbfimd/ite...
分类:
其他好文 时间:
2014-12-19 20:44:05
阅读次数:
129
描述Description农民约翰的某N( 1 ≤ N ≤ 80000 )头奶牛正在过乱头发节! 由于每头牛都意识到自己凌乱不堪的发型, 约翰希望统计出能够看到其他牛的头发的牛的数量.每一头牛t有一个高度hi( 1 ≤ hi≤ 109). 所有N头牛面向东方排成一排,牛N在最前面,而牛1在最后面. ...
分类:
其他好文 时间:
2014-11-16 10:35:44
阅读次数:
140
什么ST表啊,单调栈啊都太神了。。。蒟蒻:不会哦~于是只好使用蒟蒻专属做法:乱搞。。。发现:当前最大的一个数一定要到最后再合并(众神犇:废话。。。)不考虑这个最大数若当前"最大数"在中间,则原来的一个数列变成两个。。。可知答案就是:最大数 * 2 + 两边答案和若当前"最大数"在数列最旁边,还是只有...
分类:
其他好文 时间:
2014-11-06 17:01:17
阅读次数:
173
后缀数组,看到网上很多题解都是单调栈,这里提供一个不是单调栈的做法,首先将两个串 连接起来求height 求完之后按height值从大往小合并。 height值代表的是 sa[i]和sa[i-1] 的公共前缀长度,那么每次合并就是合并 i和i-1 那么在合并小的时候公共前缀更大的肯定已经都合并在一....
分类:
编程语言 时间:
2014-11-04 10:55:07
阅读次数:
191
题意:N 幢楼排成一列(1
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5033
——>>将楼和人的位置一起按 x 排序。。
从左往右扫,单调栈维护斜率小的。。
从右往左扫,单调栈维护斜率大的。。
#include
#include
#include
using std::sort;
const doub...
分类:
其他好文 时间:
2014-11-02 07:09:08
阅读次数:
212
题目链接:点击打开链接
题意:
给定n座山
下面n个数字表示n座山的高度
若这座山u合法,则要满足:
1、若u的左边存在比u高的山,设v是u左边距离u最近的且严格比u高的山,在[v,u]之间至少有一座山x,使得x和u的高度差>=15000
2、右边也同理。
同时满足1、2的情况则算合法。
问:
输出所有合法的山。
思路:
求距离某个点最近的山就是维护一个单调栈,然后给...
分类:
其他好文 时间:
2014-10-30 00:13:47
阅读次数:
204
http://acm.hdu.edu.cn/showproblem.php?pid=2870
Largest Submatrix
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1569 Accepted Submissi...
分类:
其他好文 时间:
2014-10-26 01:39:00
阅读次数:
213