1 条题解
-
0
📝 题目大意
有 个人进行若干次一对一胜负游戏,胜者得 分,败者得 分。已知前 个人的最终得分 ,求第 个人的最终得分。无论游戏过程如何,答案唯一确定。
💡 解题思路
-
题目分析:每次游戏都是一场零和博弈——胜者 、败者 ,因此所有人的总得分在游戏过程中始终不变。初始所有人得分均为 ,总得分为 ,所以最终总得分也必定为 。
-
算法推导:设 ,由总分为 可得:
代码中直接读取前 个数累加到
sum,最后输出-sum即可。 -
边界与细节:
- 得分可以为负数,
sum使用int即可(,,,远在int范围内)。 - 注意只读取 个数,不要多读。
- 得分可以为负数,
⏱️ 复杂度分析
- 时间复杂度:,只需遍历一次前 个得分。
- 空间复杂度:,仅需维护一个累加变量。
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int N; cin >> N; int sum = 0; // 读取前 N-1 个人的得分,累加求和 for (int i = 0; i < N - 1; i++) { int A; cin >> A; sum += A; } // 总分为 0,所以第 N 个人的得分 = -sum cout << -sum << endl; return 0; } -
- 1
信息
- ID
- 790
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者