摘要: 题目描述:给定连续的n个村庄,有三种操作: 1.D x:毁掉第x个村庄; 2.Q x:询问直接或间接与x相连的村庄数目 3.R :恢复上一个被毁掉的村庄。分析:用线段树维护区间内以左端点开始的连续区间,以右端点结束的连续区间。 询问我拆成了两部分,一个是询问x向右(含x)的连续区间长,一个是询问x向左(含x)的连续区间长,加和减一就是答案。 操作三用个栈记录下就行。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #defin. 阅读全文
posted @ 2012-10-16 12:43 silver__bullet 阅读(222) 评论(0) 推荐(0) 编辑