python3 ACM模式的输入输出例子教学

Posted 汀、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 ACM模式的输入输出例子教学相关的知识,希望对你有一定的参考价值。

  1. Python的输入是字符串,所以要自己转类型 
  2. strip去掉左右两端的空白符,返回str 
  3. slipt把字符串按空白符拆开,返回[str] 
  4. map把list里面的值映射到指定类型,返回[type] 
  5. EOF用抓异常 
  6. print后面加逗号就不会换行,否则反之,

1.例子

在新的一年,牛牛想跳得更高。牛牛本身可以跳高h米。同时牛牛有n颗跳高弹,使用第颗跳高弹可以使牛牛跳高高度增加a;米,且跳高弹的效果是可以叠加的,也就是说如果牛牛使用多颗跳高弹,那么他的跳高高度将会增加这些跳高弹单个效果的和。
每颗跳高弹只能使用一次。
请问牛牛最少需要使用多少个跳高弹,才能让牛牛的高度至少是u米高呢?数据保证答案存在。

 输入:

3 2 5

1 3 2

输出:

1

只需要使用第二颗跳高弹就可以达到5米

输入:

4 2 10

1 2 3 4

输出:

3

输入:
4 2 9
1 2 3 4


a_1=input() #读取第一行
a_2=input()  #读取第二行
b_1=[int(n) for n in a_1.split()]  #切割第一行
b_2=[int(n) for n in a_2.split()]
# 后面就是正常了,b_1[1]=10,  b_1[2]=9
print(b_2)
# ACM模式的代码
a_1 = input()
a_2 = input()
b_1 = [int(n) for n in a_1.split()]
b_2 = [int(n) for n in a_2.split()]
b_2 = sorted(b_2,reverse=True) #reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
target = b_1[2] - b_1[1]
count = 0
sums = 0
for i in b_2:
    if sums<target:
        sums+=i
        count+=1
    else:
        break
print(count)

2.有多组输入数据,但没有具体的告诉你有多少组,只是让你对应每组输入,应该怎样输出?

while True:
    try:
        a,b=map(int,input().strip().split())
        print(a+b)
    except EOFError:
        break

3.第一行为一个整数,告诉你有几组数据,剩下的行是每组的数据

tcase=int(input().strip())
for case in range(tcase):
    a,b=map(int,input().strip().split())
    print(a+b)

4. 多组数据,并告知何时结束输入,例如(0 0)

while True:
    a,b=map(int,input().strip().split())
    if a==0 and b==0:
        break
    print(a+b)

5.多组数据,每一行第一个数字代表这一组共有几个数据。当行中第一个数字为0时结束。

while True:
    data=list(map(int,input().strip().split()))
    n,array=data[0],data[1:]
    if n==0:
        break
    print(sum(array))

6.第一行的整数表示一共几组数据,剩下的行每一行第一个数字代表这一组共有几个数据。

tcase=int(input().strip())
for case in range(tcase):
    data=list(map(int,input().strip().split()))
    n,array=data[0],data[1:]
    print(sum(array))

7.多组数据,但是不知道多少组。每一行第一个数字代表这一组共有几个数据。

while True:
    try:
        data=list(map(int,input().strip().split()))
        n,array=data[0],data[1:]
        print(sum(array))
    except EOFError:
        break

8、多组数据,但是不知道有多少组,每一组的数据个数也不一样。

while True:
    try:
        data=list(map(int,input().strip().split()))
        print(sum(data))
    except EOFError:
        break

9*.输入有两行,第一行n 。第二行是n个空格隔开的字符串

n=int(input())
words=[x for x in input().strip().split()]
words.sort() #list.sort( key=None, reverse=False)
#reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
for word in words:
    print(word,end=' ')
print()

10 多个组,每个测试组是一行,字符串通过空格隔开。

while True:
    try:
        words=[x for x in input().strip().split()]
        words.sort()
        for word in words:
            print(word,end=' ')
        print()
    except EOFError:
        break

11.多个组,每个测试组是一行,字符串通过空格隔开。输出:每个字符串间用','隔开,无结尾空格。

while True:
    try:
        words=[x for x in input().strip().split(',')]
        words.sort()
        for word in words[:-1]:
            print(word,end=',')
        print(words[-1])
    except EOFError:
        break

以上是关于python3 ACM模式的输入输出例子教学的主要内容,如果未能解决你的问题,请参考以下文章

ACM模式下的输入输出格式练习

ACM模式输入输出练习

牛客网ACM模式 JsV8和Java输入输出练习

ACM模式下JavaScript(js)的输入输出 V8 Node

Python 写 ACM 题目的一些技巧

acm模式实现树的遍历