摘要: 题目大意: 给一个n个点(n<=17),m条边的有向图(无自环、无重边),求其无环子图的方案数。 题解: 看到n<=17,显然是用状压dp。 用f[i]表示点集i的满足条件的方案数。 状态转移时可以一层一层地把点加进点集。 具体的,枚举已知点集i,在i的补集中枚举下一层的点集j(可以无边相连)(以下 阅读全文
posted @ 2016-10-09 17:05 KaNNe乄羽 阅读(697) 评论(0) 推荐(1) 编辑
摘要: 传送门(下面也有题面) 题目大意: 一颗有根树,每个非叶子节点都有三个子节点,每个节点的权为0/1。 每个节点的权 取决于其所有子节点中 哪种权出现的次数更多。 有若干次询问,每次询问修改一个叶子节点的权,然后输出修改后根节点的权。 给出叶子节点初始值。 解法:树链剖分+线段树 叶子节点和非叶子节点 阅读全文
posted @ 2016-05-17 21:48 KaNNe乄羽 阅读(472) 评论(0) 推荐(1) 编辑
摘要: 传送门 LCA+主席树(可持久化线段树) 取一个点为根,每棵线段树记录树上节点到根的链上的权在数轴上的分布(当然要离散化), 则对于两个点u,v的路径上的数在数轴上的分布可以表示为tree[u]+tree[v]-tree[lca(u,v)]-tree[fa(u,v)](可以随便画图YY一下), 然后 阅读全文
posted @ 2016-04-28 08:30 KaNNe乄羽 阅读(187) 评论(0) 推荐(1) 编辑
摘要: 传送门 并查集+分块 看到题目可以想到暴力做法, 对于每个询问, 将所有a和b小于等于询问值的的边加入图中(用并查集), 如果询问的u和v在一个联通块中, 且该联通块的maxa和maxb均等与询问的a和b, 则答案为Yes。 显然暴力是过不了的,于是可以用分块。 将所有边按a值升序排序,分成√m 块 阅读全文
posted @ 2016-04-25 16:54 KaNNe乄羽 阅读(357) 评论(1) 推荐(0) 编辑
摘要: 传送门 AC自动机 + 树状数组 建成AC自动机后,设end[i]为第i个串的末尾在Trie树上的节点。 可以发现,对于一个询问(x,y),ans等于Trie树上root到end[y]这条链上fail指针指向end[x]的节点数,我们把这些点记为特殊点 因为Trie树上每个节点fail指针仅指向一个 阅读全文
posted @ 2016-04-20 22:03 KaNNe乄羽 阅读(135) 评论(0) 推荐(0) 编辑