ACM输入输出格式详解

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))
相关推荐
Olamyh7 分钟前
【 超越 ReAct:手搓 Plan-and-Execute (Planner) Agent】
python·ai
deepxuan8 分钟前
Day7--python
开发语言·python
曲幽18 分钟前
FastAPI不止于API:手把手教你用Jinja2打造动态Web页面
python·fastapi·backend·jinja2·full stack·template engine·web development
禹凕23 分钟前
Python编程——进阶知识(多线程)
开发语言·爬虫·python
Ulyanov27 分钟前
基于Pymunk物理引擎的2D坦克对战游戏开发
python·游戏·pygame·pymunk
铉铉这波能秀27 分钟前
LeetCode Hot100数据结构背景知识之字典(Dictionary)Python2026新版
数据结构·python·算法·leetcode·字典·dictionary
搞科研的小刘选手35 分钟前
【EI稳定检索会议】第七届计算机信息和大数据应用国际学术会议(CIBDA 2026)
大数据·acm·学术会议·计算机工程·计算机信息·大数据应用·信息与技术
程序媛徐师姐43 分钟前
Python基于爬虫的网络小说数据分析系统【附源码、文档说明】
爬虫·python·python爬虫·网络小说数据分析系统·pytho网络小说数据分析系统·python爬虫网络小说·python爬虫的网络小说数据
清水白石0081 小时前
深入解析 LRU 缓存:从 `@lru_cache` 到手动实现的完整指南
java·python·spring·缓存
JaydenAI1 小时前
[LangChain之链]LangChain的Chain——由Runnable构建的管道
python·langchain