题目链接:https://www.codechef.com/problems/IITK1P10大概是:修改点值,求子树节点为0有多少个,DFS序后,BIT 询问,修改1#include23usingnamespacestd;4typedeflonglongll;56#defineN2234567ll...
分类:
其他好文 时间:
2015-09-23 01:10:22
阅读次数:
139
题意:n个点的树,每个条边权值为0或者1, q次操作Q 路径边权抑或和为1的点对数, (u, v)(v, u)算2个。M i修改第i条边的权值 如果是0则变成1, 否则变成0作法: 我们可以求出每个点到根节点路径边权抑或和为val, 那么ans = val等于0的个数乘val等于1的个数再乘2。注意...
分类:
其他好文 时间:
2015-09-15 19:42:45
阅读次数:
199
题目传送门题意:给你一棵树,树上的每个节点都有树值,给m个查询,问以每个点u为根的子树下有多少种权值恰好出现k次。分析:首先要对权值离散化,然后要将树形转换为线形,配上图:收获://还没写完。。。代码:/************************************************...
分类:
编程语言 时间:
2015-09-10 22:24:11
阅读次数:
247
题意:给一颗树,根节点深度为1,每一个节点都代表一个子母。数据输入:节点数 询问数从编号为2的节点开始依次输入其父节点的编号(共有节点数减1个数字输入)字符串有节点数个小写字母接下来询问a b代表以a为根节点的子树在深度为b(包含)的范围内所有节点的字母能否组成回文串。能输出Yes,不能输出No思路...
分类:
其他好文 时间:
2015-08-17 11:48:11
阅读次数:
160
通道题意:给一个树,树上每个节点都有两个属性:忠诚度和能力,给出若干查询,求每个子树中能力 > 树根能力的点中,忠诚度最高的那个思路:子树dfs序即可,然后忠诚度排个序,取能力值大于u且忠诚度最高的,虽然线段树也可以搞,练练分块。代码:#pragma comment(linker, "/STACK:...
分类:
其他好文 时间:
2015-08-17 11:26:45
阅读次数:
215
参考九野巨巨的博客。查询一个子树内的信息,可以通过DFS序转成线形的,从而用数据结构来维护。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define MP make_pair 7 #define FI ...
分类:
编程语言 时间:
2015-08-15 11:50:01
阅读次数:
149
先求出dfs序,然后建立线段树,线段树每个节点套一个set。 修改操作只需要改被子树区间完全覆盖的线段树节点,将其节点中set的原来的值删除,加入新值。 询问操作查询单点到根的所有节点上的set中与查询值异或起来最大的那个。 查询set中的数与x异或的最大值,可以从高位到低位枚举二进制位,...
分类:
其他好文 时间:
2015-08-15 01:29:33
阅读次数:
276
题目:一棵树上每个节点有个字符值,询问每个节点的深度为h的子节点的字符是否能组成一个回文串。思路:首先是奇妙的dfs序和时间戳,通过记录每个节点的dfs进出时间,可以发现某个节点的子节点的进出时间均在该节点的进出时间范围内(这是很直观的dfs的性质),这样可以把树形结构转变为线性结构,方便进行各种处...
分类:
其他好文 时间:
2015-08-15 01:22:11
阅读次数:
175
链接
题解链接:点击打开链接
题意:
给定n个点的树,m个询问
下面n-1个数给出每个点的父节点,1是root
每个点有一个字母
下面n个小写字母给出每个点的字母。
下面m行给出询问:
询问形如 (u, deep) 问u点的子树中,距离根的深度为deep的所有点的字母能否在任意排列后组成回文串,能输出Yes.
思路:dfs序,给点重新标...
分类:
编程语言 时间:
2015-08-14 21:32:22
阅读次数:
510