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

注意事项

  1. 输入格式严格匹配:必须严格按照题目要求的格式读取输入
  2. 输出格式:注意输出是否需要空格、换行等格式要求
  3. 数据范围:注意题目给定的数据范围,选择合适的数据类型
  4. 多组数据:注意题目是否有多组测试数据
  5. EOF处理:有些题目需要处理到输入结束

这些是ACM竞赛中最常用的输入输出处理方式,掌握这些可以应对大部分的输入输出需求。

posted @ 2025-08-24 20:49  leo21sun  阅读(150)  评论(0)    收藏  举报