一条孤独的狗 发表于 2020-4-19 13:53

CCF 201909-1小明种苹果 Python

本帖最后由 一条孤独的狗 于 2020-4-23 22:28 编辑

2个样例的输出都对了,但是得分只有20分,不知道错在哪里

N, M = map(int, input().split())
drop = []   #记录每棵树掉了多少苹果
sum = 0   #苹果总数
for i in range(N):
    apple = list(map(int, input().split()))
    each = 0#每棵树剩下的苹果
    each_drop = 0#每棵树掉了多少苹果
    for i in apple:
      each = each + i
      if i < 0:
            each_drop += i
    each_drop = 0 - each_drop
    drop.append(each_drop)
    sum += each
k = 0
for i in range(N - 1):
    if drop > drop:
      k = i + 1
print(sum, k + 1, drop)

空想昼夜 发表于 2020-4-23 20:28

emmmm 好久没看算法题了

楼主这里17行的判断条件写错了

取极值怎么可能仅考虑相邻的呢

maxcount = 0
for i in range(N-1):
    if drop > maxcount:
         maxcount = drop
         k = i + 1

另外楼主以后发题记得把数据大小也发出来

我看这个题是第一题应该没什么坑如果是后面的话不同数据范围的算法也不一样

一条孤独的狗 发表于 2020-4-23 22:24

谢谢解惑,我把drop写成了drop,还一直没发现
for i in range(N - 1):
    if drop > drop:
      k = i + 1


一条孤独的狗 发表于 2020-4-23 22:27

一条孤独的狗 发表于 2020-4-23 22:24
谢谢解惑,我把drop写成了drop,还一直没发现
for i in range(N - 1):
    if drop > drop:

去年考CCF的时候,第一题只得了20分,我还一直找不到答案
前几天重新做的时候,又是20分,心态崩了
原来是这么简单的一个错误,亏我找了那么久
非常感谢你!
页: [1]
查看完整版本: CCF 201909-1小明种苹果 Python