把三层循环修回两层

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

场景:实验机上 ~/work/cx/maxsum.cpp 求最大子段和:所有连续子段里,和最大的那个。结果是对的,可 n = 5000 时要跑很久——它对每一段 (i, j) 都从头再加一遍,是三层循环。

任务:改成两层循环(O(n²)),输出不变。check 里 n = 5000 的数据限时 1 秒。make 编译(-O2),./maxsum < sample.txt 自测。

可操作范围:只在分给你的这台实验机上操作。可以改家目录里的任何东西,不要动系统目录。实验机不连网。写代码用 vim 或 nano 都行。

提交:做完在终端里运行 ~/check——它会真的运行你的程序,用每次现造的随机数据和本次实验的固定数据对拍;全部通过才打印一个 8 位标记。只提交那 8 位标记本身(形如 7F3A91C2),不要提交说明文字。大小写不限。

⚠️ 提交预算:这次实验最多可以提交错 3 次。用完需要重新开始实验——环境和答案都会变。

完成条件:提交内容与本用户、本次实验环境生成的预期结果一致。

提交你的答案
请登录后提交答案。
去登录
👩‍🏫
AI
💬 题目评论
🔒 登录并作答后可看讨论