对于第E轮codejam 2019(https://codingcompetitions.withgoogle.com/kickstart/round/0000000000050edb/0000000000170721)中的#1,我的代码可以在我的计算机上成功运行,但在联机判断中失败(跳过运行时错误测试集)。但是当我在线运行测试时,它是OK(完成的)
我该怎么解决这个问题
import numpy as np
def DG(conn1,i,A,k):
newk=np.concatenate((np.argwhere(conn1[:,i]==1),np.argwhere(conn1[i,:]==1)),axis=0)
if newk.size>0:
newk=newk.tolist()
newk=sum(newk,[])
k=k+newk
# vertex conencted to i
if len(k)!=0:
for aa in k: # 遍历每个与i连接的node
coco=conn1[aa,range(0,A)]
if 1 in coco:
return 1
else:
conn2=conn1.copy()
conn2[aa,i]=0
k.pop(0)
return DG(conn2,aa,A,k) # vertex connect to aa
else:
return 2
def solve(N,M):
conn=np.zeros((N,N))
for i in range(0,M):
v1,v2=[int(s) for s in input().split(" ")]
v1,v2=sorted([v1,v2])
conn[v2-1,v1-1]=1 # v1<v2
degree=np.zeros((N,1))
for i in range(1,N):
temp=conn[i,range(0,i)]
if 1 in temp: # directly connect to 0:i
degree[i]=1
else: # indirectly connect to 0:i
conn1=conn.copy()
degree[i]=DG(conn1,i,i,[])
return int(np.sum(degree))
case=int(input())
for k in range(1,case+1):
N,M=[int(s) for s in input().split(" ")]
degree=solve(N,M)
print("Case #{}: {}".format(k, degree))
我使用官方测试如下。我可以离线得到这些正确的输出,但在线判断失败。我还尝试了一些复杂的测试用例
2
2 1
1 2
Case #1: 1
3 1
2 3
Case #2: 3
目前没有回答
相关问题 更多 >
编程相关推荐