CCF CSP认证 历年题目自练Day21

题目一

试题编号: 201909-1

试题名称: 小明种苹果

时间限制: 2.0s

内存限制: 512.0MB

题目分析(个人理解)

  1. 先看输入,第一行输入苹果的棵树n和每一次掉的苹果数m
  2. 还是先如何存的问题,我选择列表,存储每个苹果树的剩余苹果和每一次的蔬果数。再看输出,我们到底需要得到什么,最后输出所有苹果树在蔬果之后的总苹果树,和蔬果最多的那个树的编号,以及蔬果个数。
  3. l1到lm是存储每一棵果树每一遍的蔬果数,l0是初始时的苹果数。我用sg存储每一棵树蔬果的总数,然后输出sg最大的那棵树的编号和最大的sg的值即可。
  4. T=0#苹果树剩下苹果总数
    k=0#疏果数最多的树编号
    P=0#疏果数最多
  5. 由于编号从1开始,所以从k=i+1遍历,如果P<abs(sg)那就 P=abs(sg) k=i+1
  6. 上代码!!!
python 复制代码
n,m=map(int,input().split())
T=0#苹果树剩下苹果总数
k=0#疏果数最多的树编号
P=0#疏果数最多
for i in range(n):
    sg=0
    l=list(map(int,input().split()))
    for j in range(1,m+1):
        sg+=l[j]#存储蔬果数
    T=T+l[0]+sg
    if P<abs(sg):
        k=i+1
        P=abs(sg)
print(T,k,P)

题目二

试题编号: 201909-2

试题名称: 小明种苹果(续)

时间限制: 1.0s

内存限制: 512.0MB

题目分析(个人理解)

  1. 题目又臭又长,还是先看输入,第一行还是输入有几个果树,
  2. 后面的每一行的第一个数表示有几次操作,(包括记录剩余苹果,摘掉苹果的操作和个数)。
  3. 注意,这次是将苹果种成一圈,如果出现三个连续掉落的苹果树的情况需要统计,输出的第一个是所有苹果的总数,发生掉落的苹果树的棵数,和发生连续三棵树都有苹果掉落的情况的次数。
  4. 我的想法是这样的,设置一个列表s用来记录哪棵树掉落了苹果,没掉计为0掉落计为1,T是s中为1的个数,E是s中有三个连续为1的个数,尤其要注意特殊情况,他种树是个圆形,一个闭环,当s是1,1...,1和1,...,1,1都要使E多加1。
  5. 每一步的操作还是存在列表l中,l1是初始值,后面如果是负数就在初始值的基础上减值就行,如果遇到不是负数的,也就是小明进行统计的操作,需要先判断这个数是不是等于我前面做迭代减的步骤之后的值,如果不等于,说明苹果发生了掉落,将对应苹果树的s列表的值赋值为1,然后更新,继续判断更新之后的数后面是否是负数,继续迭代减,循环直到迭代完所有的苹果树,将每一次迭代的对象写入D就是最后所有苹果树上苹果个数的总数。
  6. 上代码!!!
python 复制代码
n=int(input())
D,T,E=0,0,0
s=[0 for i in range(n)]#记录哪棵数有掉落
for i in range(n):
    l=list(map(int,input().split()))
    app=l[1]
    for j in l[2:]:
        if j<=0:#疏果
            app+=j
        else:#重新统计
            if app!=j:#有掉落
                s[i]=1
                app=j
    D+=app
T=s.count(1)
if s[n-1]==s[n-2]==s[0]==1:
    E+=1
if s[n-1]==s[0]==s[1]==1:
    E+=1
for i in range(n-2):
    if s[i]==s[i+1]==s[i+2]==1:
        E+=1
print(D,T,E)

总结

21天养成一个习惯。

相关推荐
IT方大同9 小时前
java输入输出+方法
java·开发语言·python
kaixin_啊啊9 小时前
彩谱FS-13高光谱相机学习笔记
图像处理·笔记·学习·高光谱相机
Better Bench9 小时前
从摸石头过河到看录像学习:强化学习与离线RL的进化故事
学习·强化学习·贝尔曼方程·离线强化学习·在线强化学习·q值
Evand J9 小时前
【电机滤波例程1】PMSM永磁同步电机转速与位置估计,MATLAB程序:标准无迹卡尔曼滤波、模型说明与仿真验证
算法·matlab·电机·ekf·负载·卡尔曼滤波
我命由我123459 小时前
Photoshop - Photoshop 快速选择和更改部分图像内容
学习·职场和发展·求职招聘·职场发展·学习方法·photoshop·ps
杨丰玮4189 小时前
C语言核心语法
java·c语言·开发语言·学习方法
Java后端的Ai之路10 小时前
Python 进阶探索30 - Python中的装饰器
开发语言·人工智能·python·文件处理·装饰器模式
我命由我1234510 小时前
Photoshop - 了解 Photoshop
学习·职场和发展·产品运营·求职招聘·职场发展·学习方法·photoshop
打码的老程是远篁10 小时前
手把手教你玩转大模型——3. Transformer 的位置编码——模型怎么知道谁在前,谁在后?
人工智能·算法
嘎嘎风10 小时前
MiniMind 学习笔记之 06 一张图、一百行:MiniMind 的骨架
算法·源码