ACM输入格式
ACM输入格式就是要在代码里自己写数据输入的部分,
读取方法
用python代码的方式就是通过读取行

比如数据:
python
3 5
10 20
未知行数时,通过sys.stdin来按行读取
通过for line in sys.stdin:读取到的行都是字符串格式,实际使用时要转换为对应的数据格式
python
import sys
for line in sys.stdin:
a, b = map(int, line.split())
print(a + b)
已知总行数时的输入用input()来读取
input() 是 Python 中用来读取一行输入的标准函数,常用于交互式输入和算法题的读取。
当已知总行数时,使用input()的方法逐行读取:
这种格式往往用于第一行的内容和之后的行内容不一样时的情况
python
n = int(input())
for _ in range(n):
line = input()
print(line)
用input()读取矩阵的方法
需要注意,要将map得到的分开的结果转化为list
使用list()函数
读取单行,并转为np.array格式
python
import sys
import numpy as np
dim = int(input())
x_list = list(map(float, input().split()))
x = np.array(x_list)
读取矩阵,并转为np.array格式:
python
m,n=map(int, input().split())
W = []
for row in range(m):
row_list = list(map(float, input().split()))
W.append(row_list)
W = np.array(W)
for line in sys.stdin:和input()不能在一起使用!

读取列表类型的输入:
python
line = sys.stdin.read().strip()
line = line.strip()[1:-1] # 去掉方括号
tokens = [x.strip() for x in line.split(',')] if line else []
arr = []
for t in tokens:
if t.lower() == 'null' or t == '':
arr.append(None)
else:
arr.append(int(t))

ACM输出格式
ACM的输出方式为print(),直接打印出的结果就任务是题目的输出
格式化输出二维数组features的代码:
python
import numpy as np
# 示例二维数组
features = np.array([
[0.0, 0.0, 0.0, 0.0],
[10.12345, 10.0, 10.5678, 10.0]
])
# 输出每行,元素保留两位小数
for row in features:
print(" ".join(f"{x:.2f}" for x in row))
格式化输出列表:
python
if np.allclose(new_centers, centers): # number of K centers
print(*np.sort(np.bincount(labels)))
break
输出值后直接退出程序:
sys.exit(0)
python
n = len(arr)
if n == 0:
print("[]")
sys.exit(0)
输出完全二叉树格式
python
# 构造新子树(使用字典存储稀疏完全二叉树)
# newtree = {} 假设已经构造好了
# 转为数组形式
max_pos = max(newtree.keys()) # 设置最大长度
out = [None] * (max_pos + 1)
for k, v in newtree.items():
out[k] = v
# 去除末尾 null
while out and out[-1] is None:
out.pop()
# 输出格式:[x,y,z]
res = []
for v in out:
if v is None:
res.append("null")
else:
res.append(str(v))
print("[" + ",".join(res) + "]")
将浮点数组以整数的方式输出:
python
print(*q_y.astype(int))