Python提交遇到数组越界
0x07 基本算法-贪心 E题
在用python提交的时候报了
不通过 您的代码已保存
请检查是否存在语法错误或者数组越界非法访问等情况
case通过率为0.00%
请检查是否存在语法错误或者数组越界非法访问等情况
case通过率为0.00%
求助牛客的大佬们
class Myclass(object): class Node(object): def __init__(self,father,num,val,avg): self.father=father self.num=num self.val=val self.avg=avg def make_struct(self,father,num,val,avg): return self.Node(father,num,val,avg) myclass=Myclass() no=[] line=[] def find(n,root): res=-1 pos=0 for i in range(1,n+1): if i is not root and no[i].avg > res: res=no[i].avg pos=i return pos while True: n,root=map(int,input().split()) if n==0 and root==0: break ans=0 line.clear() line=list(map(int,input().split(" "))) no.clear() no.append(myclass.make_struct(0,0,0,0.0)) for i in range(1,n+1): val=line[i-1] avg=float(val) num=1 no.append(myclass.make_struct(0,num,val,avg)) ans+=no[i].val for i in range(1,n): a,b=map(int,input().split()) no[b].father=a for i in range(1,n): f=find(n,root) father=no[f].father ans+=no[father].num*no[f].val no[f].avg=-1.0 for j in range(1,n+1): if no[j].father is f: no[j].father=father no[father].num+=no[f].num no[father].val+=no[f].val no[father].avg=no[father].val/no[father].num print(ans)