P1062卡牌游戏poker

时间限制 2000 ms内存限制 512 MiB通过率 —
显示算法标签博弈论 · 状态压缩 DP · 记忆化搜索

【题目描述】

Ehundategh 正在与 tfbz 玩一款神奇的游戏。

这款游戏非常有趣,具体的规则如下:

  • 一共有 nn 张不同的卡牌,每张卡牌分为正面和背面,对于第 ii 张卡牌, 其正面和背面的数值分别为 aia_ibib_i
  • 两个人轮流从牌堆里拿走牌,每次需要选定两张牌。假定编号为 i,ji,j,只有当牌满足 ai=aja_i=a_j 或者 bi=bjb_i=b_j 时,这两张牌才能被同时拿走。
  • 当某一个人没有办法按照上述规则取牌时,或者轮到该人时牌堆已为空,该人被判负。

若两张仍在牌堆中的卡牌可以按照上述规则被同时拿走,则称它们构成一组可取牌对

游戏开始时,全部 nn 张卡牌都在牌堆中,由 Ehundategh 先手。两人都知道所有卡牌正面与背面的数值,并且都会采取使自己获胜的最优策略。

请你判断最终获胜的人是谁。

【输入格式】

从文件 poker.in\textbf{\textit{poker.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含两个整数 c,Tc,T,分别表示测试点编号与测试数据组数。c=0c=0 表示该测试点为样例。

接下来依次输入每组测试数据。对于每组测试数据:

第一行包含一个整数 nn,表示卡牌的数量。

接下来 nn 行,第 ii 行包含两个整数 ai,bia_i,b_i,分别表示第 ii 张卡牌正面与背面的数值。

【输出格式】

输出到文件 poker.out\textbf{\textit{poker.out}} 中。

对于每组测试数据,输出一行一个字符串。若 Ehundategh 获胜,输出 Ehundategh,否则输出 tfbz

【样例 1 输入】

0 411 121 11 231 11 22 241 11 22 22 1

【样例 1 输出】

tfbzEhundateghEhundateghtfbz

【说明/提示】

【样例 1 解释】

在第一组测试数据中,牌堆里只有一张卡牌,Ehundategh 无法取牌,因此 tfbz 获胜。

在第二组测试数据中,两张卡牌构成一组可取牌对,Ehundategh 可以将它们同时拿走,因此 Ehundategh 获胜。

在第三组测试数据中,Ehundategh 取走任意一组可取牌对后,牌堆中只会剩下一张卡牌,tfbz 无法继续取牌,因此 Ehundategh 获胜。

在第四组测试数据中,无论 Ehundategh 取走哪一组可取牌对,剩下的两张卡牌仍会构成一组可取牌对。tfbz 可以取走最后两张卡牌,因此 tfbz 获胜。

【样例 2】

见选手目录下的 poker/poker2.in\textbf{\textit{poker/poker2.in}}poker/poker2.ans\textbf{\textit{poker/poker2.ans}}

该组样例符合测试点 141\sim 4 的数据范围。

【样例 3】

见选手目录下的 poker/poker3.in\textbf{\textit{poker/poker3.in}}poker/poker3.ans\textbf{\textit{poker/poker3.ans}}

该组样例符合测试点 585\sim 8 的数据范围。

【样例 4】

见选手目录下的 poker/poker4.in\textbf{\textit{poker/poker4.in}}poker/poker4.ans\textbf{\textit{poker/poker4.ans}}

该组样例符合测试点 9129\sim 12 的数据范围。

【样例 5】

见选手目录下的 poker/poker5.in\textbf{\textit{poker/poker5.in}}poker/poker5.ans\textbf{\textit{poker/poker5.ans}}

该组样例符合测试点 131513\sim 15 的数据范围。

【样例 6】

见选手目录下的 poker/poker6.in\textbf{\textit{poker/poker6.in}}poker/poker6.ans\textbf{\textit{poker/poker6.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T61\leq T\leq 61n201\leq n\leq 201ai,bi1091\leq a_i,b_i\leq 10^9。对于同一个测试点,保证 n60\sum n\leq 60

测试点编号nn特殊性质
141\sim 48\leq 8
585\sim 820\leq 20A
9129\sim 1220\leq 20B
131513\sim 1520\leq 20C
162016\sim 2020\leq 20

特殊性质 A:对于任意 1i,jn1\leq i,j\leq n,均有 ai=aja_i=a_j

特殊性质 B:对于任意一张卡牌,至多存在另一张卡牌与其构成可取牌对

特殊性质 C:将每张卡牌视作一个结点,将每组可取牌对视作连接对应两个结点的一条边,由此得到的无向图不存在环,且每个结点的度数不超过 22

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解