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…
一道并查集的题目硬是被我当成线段树写了,感觉这样写虽然不是最好的,不过能a就行 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=103906#problem/G http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2170 首先题意: 一个可以被标记的树,起初只有根节点被标记了,然后有两种操作,第一种操作是把某一个点标记,第二个操作是询问他的祖先中离他最近的节点编号,最后出书…
题意: 有一个树,有些节点染色,每次有两种操作,第一,统计该节点到离它最近的染色父亲结点的的号码(Q),第二,为某一个节点染色(M),求第一种操作和. 输入: 输入由多个数据集组成.每个数据集都有以下格式:输入的第一行包含两个整数N和Q,分别表示树T中的节点数和操作数.这些数字满足以下条件:1≤N≤100000和1≤Q≤100000.下面的N-1行,每行包含一个整数pi(i = 2,...,N),它表示第i个节点的父节点的编号.接下来的Q行按顺序包含操作.每个操作都格式化为“M v”或“Q v”…
https://vjudge.net/problem/Aizu-2170 并查集用于管理元素分组情况. 建树pre[]记录父节点,一开始只有结点1被标记了,所以find()最终得到的根都是1. 如果遇到M操作,即将树断开(很神奇的操作). #include<iostream> #include<cstdio> #include<queue> #include<cstring> #include<algorithm> #include<cma…
POJ 1852 Ants POJ 2386 Lake Counting POJ 1979 Red and Black AOJ 0118 Property Distribution AOJ 0333 Ball POJ 3009 Curling 2.0 AOJ 0558 Cheese POJ 3669 Meteor Shower AOJ 0121 Seven Puzzle POJ 2718 Smallest Difference POJ 3187 Backward Digit Sums POJ 3…
续上一篇,解决了上一篇中的问题后,启动成功,但是在数据库中操作会存在一些问题,一些操作报一下异常: Table './mysql/proc' is marked as crashed and should be repaired 解决方案: repair table mysql.proc;…