求助最大连通域面积

23 views
Skip to first unread message

祝印月

unread,
Dec 27, 2018, 5:43:19 AM12/27/18
to cs10...@googlegroups.com

在我的电脑上过了,OJ显示runtime error。另外如果改成比较size当前和上一次的值的话就AC

x=int(input())

def search(i,j):

    global size

    size+=1

    xs[i][j]='.'

    for p in (-1,0,1):

        for q in (-1,0,1):

            if xs[i+p][j+q]=='W':

                search(i+p,j+q)

for m in range(x):

    a,b=map(int,input().split())

    xs=[['.']*(b+2)]+[list('.'+input()+'.') for _ in range(a)]+[['.']*(b+2)]

    s=[]

    for i in range(1,a+1):

        for j in range(1,b+1):

            if xs[i][j]=='W':

                size=0

                search(i,j)

                s.append(size)

    print(max(s))

 

发送自 Windows 10 邮件应用

 

殷克非

unread,
Dec 27, 2018, 6:31:30 AM12/27/18
to cs10...@googlegroups.com
会出现搜索不到的情况,即s空集时max(S)会RE
改为:


x=int(input())

def search(i,j):

    global size

    size+=1

    xs[i][j]='.'

    for p in (-1,0,1):

        for q in (-1,0,1):

            if xs[i+p][j+q]=='W':

                search(i+p,j+q)

for m in range(x):

    a,b=map(int,input().split())

    xs=[['.']*(b+2)]+[list('.'+input()+'.') for _ in range(a)]+[['.']*(b+2)]

    s=[0]   # 在此处先在s里面垫一个0(会出现搜索不到的情况)


    for i in range(1,a+1):

        for j in range(1,b+1):

            if xs[i][j]=='W':

                size=0

                search(i,j)

                s.append(size)

    print(max(s))
--
您收到此邮件是因为您订阅了Google网上论坛上的“cs101pku”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cs101pku+u...@googlegroups.com
要发帖到此群组,请发送电子邮件至cs10...@googlegroups.com
访问此群组:https://groups.google.com/group/cs101pku
要查看更多选项,请访问https://groups.google.com/d/optout
Reply all
Reply to author
Forward
0 new messages