题意:
给定n个点的带边权树Q个询问。
下面n-1行给出树
下面Q行每行一个数字表示询问。
首先求出dp[N] :dp[i]表示i点距离树上最远点的距离
询问u, 表示求出 dp 数组中最长的连续序列使得序列中最大值-最小值
思路:
求dp数组就是求个树的直径然后dfs一下。
对于每个询问,可以用一个单调队列维护一下。O(n)的回答。
#include
#includ...
分类:
其他好文 时间:
2014-11-09 15:18:46
阅读次数:
271
一开始采用递归写,TLE。
class Solution {
public:
bool flag;
int n,m;
void dfs(int id0,const char *s,int id1,const char *p){
if(flag)return;
if(id0>=n){
if(id1>=m)flag=1;
else{
int j=0;
whi...
分类:
其他好文 时间:
2014-11-09 15:18:20
阅读次数:
225
题意:
给定n,
下面是1-n的排列。
下面一个二进制子串。
先按给定的排列建出二叉树。
然后遍历树(根->左子树->根->右子树->根)
遍历这个节点时 若权值为奇数入栈一个1,若为偶数入栈一个0
得到一个母串。
问母串中出现了几次子串。
思路:
先是建树得到母串,然后求子串个数就是裸的KMP。
建树就是找个规律,然后用线段树维护一下输入的排列
#include
#...
分类:
其他好文 时间:
2014-11-09 15:18:00
阅读次数:
258
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #in...
分类:
其他好文 时间:
2014-11-09 15:16:23
阅读次数:
185
verilog描述组合逻辑一般常用的有两种:assign赋值语句和always@(*)语句。两者之间的差别有:1. 被assign赋值的信号定义为wire型,被always@(*)结构块下的信号定义为reg型,值得注意的是,这里的reg并不是一个真正的触发器,只有敏感列表为上升沿触发的写法才会综合为...
分类:
其他好文 时间:
2014-11-09 15:16:13
阅读次数:
243
js的String类型与java的String类型不同,比较的时候不用equals,可以直接用"==".测试了下,这个"=="好像比较坑爹怎么能有这么没道理的事情?a=c,b=c,但是a竟然不等于b!!!我的结论是js中的String类型虽然没有equals方法,但是当String类型对象与另一个S...
分类:
Web程序 时间:
2014-11-09 15:14:40
阅读次数:
178
1 protected String getTableNameByClass(Class T){ 2 AbstractEntityPersister cm = (AbstractEntityPersister) 3 super.getHiberna...
分类:
Web程序 时间:
2014-11-09 15:10:08
阅读次数:
223
#region 程序集 mscorlib.dll, v4.0.0.0// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll#endregionusing Sy...
分类:
其他好文 时间:
2014-11-09 15:09:15
阅读次数:
157
Given a BST, transform it into greater sum tree where each node contains sum of all nodes greater than that node.自己想的复杂了,其实就是一个反向的inorder。新的值就是前面所有元素的...
分类:
其他好文 时间:
2014-11-09 15:07:49
阅读次数:
186
题意:N个点的一棵树。定义点u和点v的距离等于它们之间的路径(唯一的)的长度。这样我们可以得到n*(n-1)/2个距离。将它们从小到大排序,问前K个数的和是多少。思路:将边长为1的树枝都入队列。每次取出一个,然后从这根树枝的前端生出一个新点,变成距离加1的一根新树枝,将其入队列。如此操作下去。可得到...
分类:
其他好文 时间:
2014-11-09 15:07:22
阅读次数:
186