Aizu:2170-Marked Ancestor】的更多相关文章

题意:出一颗树,有两种操作:1. mark  u  标记结点u2.query  u  询问离u最近的且被标记的祖先结点是哪个让你输出所有询问的和. 思路:数据量太小,直接暴力dfs就可以了 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<vector> #include<set>…
寻找根节点很容易让人联想到DisjointSet,但是DisjointSet只有合并操作, 所以询问离线倒着考虑,标记会一个一个消除,这时候就变成合并了. 因为询问和查询的时间以及标记生效的时间有关,记录下查询时间,在树上记录的标记.(没有做标记的默认为最大询问时间+1,根节点为0 在Find的时候根据询问的时间进行回答. 路径压缩会影响到答案吗?并不会,因为压缩的时候,标记一定已经失效了. (答案会爆int,这种问题无非就是在路径上做一些改动,类似比如UVA 11987 Almost Unio…
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=45522 给定一棵树的n个节点,每个节点标号在1到n之间,1是树的根节点,有如下两种操作: M v :把编号为v的节点标记. Q v :查询与v节点距离最近的被标记的点的编号.最初只有根节点被标记. 输入n-1个数表示,每一个数是当前第i个数的父节点,输出对于每个查询得到标号的总和. 并查集与树的结合,在输入的时候就可以根据父节点的关系建立并查集,1的父亲是1. 还有把编号为…
题意: 给你一颗N个节点的树,节点编号1到N.1总是节点的根.现在有两种操作: M v: 标记节点v Q v: 求出离v最近的标记的相邻节点.根节点一开始就标记好了. 现在给一系列操作,求出所有Q操作结果的和. 思路: 最坏情况下为整棵树成为一条链,单纯使用并查集(无压缩)查询复杂度最坏1e10.单纯使用并查集也能过. 正解应该是将查询存下来,存下每次Q操作的查询时间和查询结点,用qt和qv数组存储.另外设置mark数组存储这个结点被染色的最快时间.然后我们倒着进行查询操作,当当前查询的结点最早…
Marked Ancestor Time limit 8000 ms Memory limit 131072 kB Problem Description You are given a tree T that consists of N nodes. Each node is numbered from 1 to N, and node 1 is always the root node of T. Consider the following two operations on T: M v…
一.mysql 执行select 的时候报Table错误:is marked as crashed and last (automatic?) 解决方法如下: 找到mysql的安装目录的bin/myisamchk工具,在命令行中输入: myisamchk -c -r ../data/dedecmsv4/dede_archives.MYI 然后myisamchk 工具会帮助你恢复数据表的索引.重新启动mysql,问题解决. 问题分析: 1.错误产生原因,有网友说是频繁查询和更新dede_archi…
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has…
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w…
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has…
题意: 有一个树,有些节点染色,每次有两种操作,第一,统计该节点到离它最近的染色父亲结点的的号码(Q),第二,为某一个节点染色(M),求第一种操作和. 输入: 输入由多个数据集组成.每个数据集都有以下格式:输入的第一行包含两个整数N和Q,分别表示树T中的节点数和操作数.这些数字满足以下条件:1≤N≤100000和1≤Q≤100000.下面的N-1行,每行包含一个整数pi(i = 2,...,N),它表示第i个节点的父节点的编号.接下来的Q行按顺序包含操作.每个操作都格式化为“M v”或“Q v”…