ACM模式输入输出
ACM模式的输入输出是指在编程竞赛中常用的输入输出格式。以下是常见的ACM输入输出处理方式:
基本输入处理
1. 读取单个整数
n = int(input())
2. 读取一行多个整数(空格分隔)
# 方法1:使用map
a, b, c = map(int, input().split())
# 方法2:读取为列表
numbers = list(map(int, input().split()))
3. 读取多行数据
# 读取n行,每行一个整数
n = int(input())
for _ in range(n):
x = int(input())
# 读取n行,每行多个整数
n = int(input())
for _ in range(n):
a, b, c = map(int, input().split())
4. 读取二维数组
# 读取m行n列的矩阵
m, n = map(int, input().split())
matrix = []
for _ in range(m):
row = list(map(int, input().split()))
matrix.append(row)
5. 读取字符串
# 读取一行字符串
s = input()
# 读取多行字符串
n = int(input())
strings = []
for _ in range(n):
s = input()
strings.append(s)
基本输出处理
1. 输出单个值
print(result)
2. 输出多个值(空格分隔)
# 方法1:使用*
print(*results)
# 方法2:使用format
print("{} {}".format(a, b))
# 方法3:使用f-string(Python 3.6+)
print(f"{a} {b}")
3. 输出到同一行
# 不换行输出
print(result, end=" ")
完整的ACM模式模板
def main():
# 读取输入
# 根据具体题目调整输入方式
n = int(input())
arr = list(map(int, input().split()))
# 处理逻辑
result = solve(arr)
# 输出结果
print(result)
def solve(arr):
# 具体的解题逻辑
pass
if __name__ == "__main__":
main()
常见输入输出格式示例
示例1:单组数据
# 输入:
# 5
# 1 2 3 4 5
# 输出:
# 15
n = int(input())
arr = list(map(int, input().split()))
print(sum(arr))
示例2:多组数据
# 输入:
# 2
# 3
# 1 2 3
# 4
# 1 2 3 4
# 输出:
# 6
# 10
T = int(input()) # 测试用例数量
for _ in range(T):
n = int(input())
arr = list(map(int, input().split()))
print(sum(arr))
示例3:不确定数量的数据
# 读取直到文件结束
import sys
for line in sys.stdin:
numbers = list(map(int, line.split()))
# 处理数据
示例4:按行处理字符串
# 输入:
# hello world
# python acm
while True:
try:
line = input()
# 处理line
print(line.upper())
except EOFError:
break
注意事项
- 输入格式严格匹配:必须严格按照题目要求的格式读取输入
- 输出格式:注意输出是否需要空格、换行等格式要求
- 数据范围:注意题目给定的数据范围,选择合适的数据类型
- 多组数据:注意题目是否有多组测试数据
- EOF处理:有些题目需要处理到输入结束
这些是ACM竞赛中最常用的输入输出处理方式,掌握这些可以应对大部分的输入输出需求。

浙公网安备 33010602011771号