堆棋子

本文探讨了一段Python代码在本地与牛客网运行结果不一致的现象,通过详细分析代码逻辑,特别是排序和距离计算部分,寻找可能的bug所在,并讨论了如何调试和解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

n=int(raw_input())
x=map(int,raw_input().split())
y=map(int,raw_input().split())

#1.其他点到某个点的距离(可能会发生重复计算)
def distence(x0,y0,x,y):
    return(abs(x0-x)+abs(y0-y))

#2.sorted其他点到某个点的距离,这个距离的前i个值之和就是有i个棋子在这个格子的最少操作数
#3.比较各个格子有i个棋子的最少操作数,取出最小的那个值
res_min=[float("inf")]*(n)
for k in range(n):
    #for j in range(n):
            #d.append(distence(x[k],y[k],x[j],y[j]))  #d表示其他点到第k个点的距离
    d=[distence(x[k],y[k],x[j],y[j]) for j in range(n)]
    d=sorted(d)
    #print d
    #res=[sum(d[:(i+1)]) for i in range(n)]  #前i个值的和,注意这里的索引,易错
    dist=0
    for i in range(n):       
        #if res_min[i]>res[i]:
            #res_min[i]=res[i]
        dist +=d[i]
        if res_min[i]>dist:
            res_min[i]=dist
print(" ".join(str(i) for i in res_min))

很神奇的是,这段代码能在自己电脑上运行,但是在牛客网就是不行。。。。为什么???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值