哎,这题死活想不出来…
只能加几分了,哎
Ⅰ . 考 虑 极 端 情 况 \color{Red}Ⅰ.考虑极端情况 Ⅰ.考虑极端情况
考 虑 特 殊 情 况 , 当 某 一 堆 石 子 x 超 级 多 的 时 候 考虑特殊情况,当某一堆石子x超级多的时候 考虑特殊情况,当某一堆石子x超级多的时候
先 手 肯 定 一 直 拿 这 堆 石 子 , 那 后 手 只 能 拿 其 他 石 子 先手肯定一直拿这堆石子,那后手只能拿其他石子 先手肯定一直拿这堆石子,那后手只能拿其他石子
如 果 x 大 于 其 他 石 子 和 , 那 么 后 手 没 石 子 拿 了 , 先 手 仍 然 拿 这 堆 , 先 手 赢 如果x大于其他石子和,那么后手没石子拿了,先手仍然拿这堆,先手赢 如果x大于其他石子和,那么后手没石子拿了,先手仍然拿这堆,先手赢
那一般情况怎么办呢?
假 设 石 子 总 数 是 s u m n 个 假设石子总数是sumn个 假设石子总数是sumn个
可 以 想 到 , 最 后 分 出 胜 负 是 因 为 只 剩 最 后 一 堆 石 子 , 设 剩 下 x 个 可以想到,最后分出胜负是因为只剩最后一堆石子,设剩下x个 可以想到,最后分出胜负是因为只剩最后一堆石子,设剩下x个
谁 先 拿 x 这 堆 谁 就 赢 了 谁先拿x这堆谁就赢了 谁先拿x这堆谁就赢了
问 题 在 于 x 是 多 少 , 如 果 知 道 x 就 知 道 ( s u m n − x ) 的 奇 偶 性 问题在于x是多少,如果知道x就知道(sumn-x)的奇偶性 问题在于x是多少,如果知道x就知道(sumn−x)的奇偶性
这 样 就 能 知 道 谁 最 后 拿 了 x 这样就能知道谁最后拿了x 这样就能知道谁最后拿了x
假 设 x = 5 , 那 么 总 石 子 数 被 取 到 9 的 时 候 假设x=5,那么总石子数被取到9的时候 假设x=5,那么总石子数被取到9的时候
接 下 来 拿 的 人 可 以 一 直 拿 x 这 堆 , 就 赢 了 , 原 因 同 Ⅰ 接下来拿的人可以一直拿x这堆,就赢了,原因同\color{Red}{Ⅰ} 接下来拿的人可以一直拿x这堆,就赢了,原因同Ⅰ
所 以 另 一 个 人 一 定 不 会 让 这 种 事 发 生 , 在 之 前 的 决 策 就 会 不 让 这 堆 石 子 那 么 突 出 所以另一个人一定不会让这种事发生,在之前的决策就会不让这堆石子那么突出 所以另一个人一定不会让这种事发生,在之前的决策就会不让这堆石子那么突出
假 设 x = 4 , 那 么 总 石 子 数 被 取 到 7 的 时 候 , 接 下 来 取 得 人 就 必 胜 了 假设x=4,那么总石子数被取到7的时候,接下来取得人就必胜了 假设x=4,那么总石子数被取到7的时候,接下来取得人就必胜了
所 以 另 一 个 人 在 之 前 的 决 策 就 不 会 让 这 堆 石 子 这 么 突 出 所以另一个人在之前的决策就不会让这堆石子这么突出 所以另一个人在之前的决策就不会让这堆石子这么突出
同 理 x 只 能 等 于 1 同理x只能等于1 同理x只能等于1
也 就 是 最 后 一 定 会 拿 得 只 剩 下 1 颗 石 子 啊 ! ! \color{Red}也就是最后一定会拿得只剩下1颗石子啊!! 也就是最后一定会拿得只剩下1颗石子啊!!
#include
using namespace std;
#define int long long
const int maxn=2e5+10;
int t,n,a[maxn],b[maxn];
signed main()
{
cin >> t;
while( t-- )
{
cin >> n;
int maxx=0,sumn=0;
for(int i=1;i<=n;i++)
{
cin >> a[i];
sumn+=a[i];
maxx=max(maxx,a[i]);
}
if( maxx>(sumn-maxx) ) cout << "T\n";
else
{
if( sumn%2==1 ) cout << "T\n";
else cout << "HL\n";
}
}
}