You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#求解SPOJ MOHIBPIZ披萨题触发超时如何优化?

问题原因及优化方案

核心性能问题1:递归计算逻辑效率极低

你当前使用的递归函数对应递推规则如下:

  • 边界条件:x ≤ 1时返回2
  • 递推规则:Recursion(x) = Recursion(x-1) + x

该递推式可以直接推导为闭源计算公式,无需递归遍历计算:
f(x) = x*(x+1)/2 + 1
使用该公式可以在O(1)时间内得到任意x的结果,彻底避免递归带来的栈开销、函数调用开销以及O(x)的时间复杂度,哪怕x取值极大也不会有性能损耗。

核心性能问题2:输出逻辑未使用快速IO能力

你引入了自定义的快速IO类,但实际输出时使用了普通的StreamWriter.WriteLine方法,没有用到快速IO类的缓冲输出能力,反而多了不必要的IO开销,应该直接调用InputOutput类自带的WriteLineToBuffer方法输出结果。

修改后的核心代码片段

public static void Main()
{
    using (InputOutput io = new InputOutput())
    {
        int T = io.ReadInt();
        for (int i = 0; i < T; i++)
        {
            int x = io.ReadInt();
            int res = x * (x + 1) / 2 + 1;
            io.WriteLineToBuffer(res);
        }
    }
}
// 其余InputOutput类代码保持不变即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:45:04