You need to enable JavaScript to run this app. XOR EQUALITY CodeChef 2021年5月赛 Python代码TLE超时排查
优惠活动
大模型
产品
解决方案
定价
更多

XOR EQUALITY CodeChef 2021年5月赛 Python代码TLE超时排查

超时原因与修复方案

你推导的答案公式本身符合题目要求,超时完全是代码实现的效率问题,具体原因有两点:

  • 大数幂运算逻辑不合理
    写法2 ** n % MOD会先完整计算无取模的全量大整数,再执行取模操作。本题n的上限可达10^9量级,最终生成的超大整数会占用数百MB内存,运算、存储的开销都极高,是触发超时的核心原因。
    Python内置了三参数版本的pow(底数, 指数, 模数),底层基于快速幂实现,运算过程中每一步都会自动取模,不会生成完整的超大整数,时间复杂度仅为O(log n),是大数模幂场景的标准实现。
  • 逐行读写的IO开销过高
    当测试用例数量较大时,多次调用input()读入、多次调用print()输出都会产生不必要的IO消耗。编程竞赛中Python代码通常会一次性读取全部输入,拼接完所有结果后再批量输出,进一步压缩耗时。

另外你代码里的count = 0是完全无用的冗余变量,可以直接删除。

可直接提交的优化代码

import sys

MOD = 10**9 + 7
# 一次性读取全部输入数据
input_data = list(map(int, sys.stdin.buffer.read().split()))
case_count = input_data[0]
output = []

for idx in range(1, case_count + 1):
    n = input_data[idx] - 1
    output.append(str(pow(2, n, MOD)))

# 批量输出所有结果
print('\n'.join(output))

即使不做批量IO优化,仅将原有代码中的(2**n)%((10**9)+7)替换为三参数pow写法,也能解决核心的超时问题,批量读写是适配极限数据的竞赛常用优化。

内容的提问来源于stack exchange,提问作者Anurag Chaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 06:54:03