摘要: 【题意】给定n个点的树,从无到有加边,过程中动态询问当前图某条边两端连通点数的乘积,n<=10^5。 【算法】线段树合并+并查集 (||LCT(LCT维护子树信息 LCT维护子树信息(+启发式合并))——嗷嗷待补) 【题解】先将所有边离线加入计算dfs序(套路,强制固定原树形态) 对于一条边(u,v 阅读全文
posted @ 2017-10-24 21:56 ONION_CYC 阅读(320) 评论(0) 推荐(1) 编辑
摘要: 【题意】给定只含小写字母的字符串,要求分割成若干段使段内字母重组顺序后能得到回文串,求最少分割段数。n<=2*10^5 【算法】DP 【题解】关键在于快速判断一个字符子串是否合法,容易发现合法仅当不存在或只存在一个奇数字符,其余字符均为偶数。 当涉及到奇偶性(%2)时,很自然能想到异或。 将小写字母 阅读全文
posted @ 2017-10-24 21:14 ONION_CYC 阅读(173) 评论(0) 推荐(1) 编辑
摘要: 【题意】带点权树,统计每个结点子树内点权比它大的结点数。 【算法】线段树合并 【题解】对每个点建权值线段树(动态开点),DFS中将自身和儿子线段树合并后统计。 注意三个量tot,cnt,tots,细心查错。 #include<cstdio> #include<algorithm> #include< 阅读全文
posted @ 2017-10-24 16:30 ONION_CYC 阅读(290) 评论(0) 推荐(0) 编辑