T2
其实这道题比 T1 简单不少。
看到题一眼 dfs,但是明显暴搜会 T 飞。赛时没有想到优化方法,用的乱搞骗分。
正解很好理解,暴搜是 \(O(2^n)\) 的,而最大范围是 \(45\),\(2^{45}\) 太大。怎么办?可以把他在中间分一半,先计算出前面部分的 \(sum\),那么总和减去后面算的答案如果与 \(sum\) 相等就是正确答案了!
可以用 unsigned long long 来自然溢出避免取模。记录 \(sum\) 用 unordered_map 查询 \(O(1)\)。

浙公网安备 33010602011771号