2022年1月8日 python练习

Posted on 2022-01-08  43 Views


洛谷 P1428 小鱼比可爱

题目描述

人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。
输入格式

第一行输入一个整数 nnn,表示鱼的数目。

第二行内输入 nnn 个整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度。
输出格式

行内输出 nnn 个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。
输入输出样例
输入 #1

6
4 3 0 5 1 2

输出 #1

0 0 0 3 1 2

说明/提示

对于 100%100\%100% 的数据,n≤100n\leq 100n≤100。


这个题因为给的测试数据比较水,直接模拟也可以过。用算法的话感兴趣可以去查一下树状数组。这里只是用来练习python语法,所以只用最简单的模拟

n = int(input())
fish_list = list(map(int,input().split()))
for i in range(n):
    count = 0
    for j in range(i):
        if fish_list[i] > fish_list[j]:
            count += 1
    print(count,end=" ")

洛谷 P5727 【深基5.例3】冰雹猜想

在这里插入图片描述

这个题可以练习列表的逆序操作,总共有三种,先上代码

n = int(input())
ans_list = [n]
while n != 1:
    if n%2 == 0:
        n = n // 2
        ans_list.append(n)
    else :
        n = n*3 + 1
        ans_list.append(n)
for i in ans_list[::-1]:
    print(i,end=" ")

第一种就是上面内种

for i in ans_list[::-1]:
    print(i,end=" ")

和字符串的逆序一样,使用切片的方法
第二种可以写成这样

for i in range(len(ans_list)-1,-1,-1):
    print(ans_list[i],end=" ")

使用range的方法逆序索引
第三种是使用一下python自带的逆序方法reserve(),直接将整个列表逆序,然后正序输出

for i in reversed(ans_list):
    print(i,end = " ")

洛谷 P5728 【深基5.例5】旗鼓相当的对手

在这里插入图片描述

这题主要练习二维列表的创建和使用,思路很简单,按行读入每一个学生的成绩,并将总成绩也加入列表,最后按行比对成绩即可,代码很简单,直接贴出来

n = int(input())
score = []
for i in range(n):
    t = list(map(int,input().split()))
    t.append(sum(t))
    score.append(t)
count = 0
for i in range(n):
    for j in range(i+1,n):
        flag  = True
        for k in range(3):
            if abs(score[i][k] - score[j][k]) > 5:
                flag = False
                break
            if abs(score[i][3] - score[j][3]) > 10:
                flag = False
        if flag:
            count += 1
print(count)

欢迎来到parafish的个人博客,这里是一个正在努力的ctfer

路虽远,行则必至