CodeForces 1152D Neko and Aki's Prank

说明

  1. Catalan(i) 表示卡特兰数的第 i 项。

题目链接:http://codeforces.com/problemset/problem/1152/C

题目大意

  有 n 个左括号和 n 个右括号,它们一共可以组成 Catalan(n) 个合法括号字符串,把这些字符串组建成 Trie 树,求这棵树的二分图最大匹配。

分析

  设 Node(L, R) 表示 Trie 树的一个节点,这个节点含有 L 个左括号和 R 个右括号。
  虽然说是求二分图最大匹配,不过这道题却不能用求最大匹配的的方法求(超时 + 爆栈),注意到这棵 Trie 是棵二叉树且根节点到每个叶子节点的距离都是一样的,都为 2*n,于是我们可以把 L + R 为奇数的划分为 A 集合,把 L + R 为偶数的划分为 B 集合,

代码如下

猜你喜欢

转载自www.cnblogs.com/zaq19970105/p/10820410.html