求助晶矿个数问题

27 views
Skip to first unread message

EVE HE

unread,
Dec 29, 2018, 3:53:40 AM12/29/18
to cs101pku
模仿池塘个数定义了一个函数,但是输出一直不对,请帮忙看下哪里错了呀?
谢谢~
dir = [[-1, 0], [1, 0], [0, -1], [0, 1]]
def dfs(x, y):
if x < 0 or x >= n or y < 0 or y >= n or jk[x][y] == '#':
return
jk[x][y] = '#'
for i in range(len(dir)):
dfs(x + dir[i][0], y + dir[i][1])

k = int(input())
for i in range(k):
n = int(input())
jk = []
r,b = 0,0
for i in range(n):
jk.append(list(input()))

for q in range(n):
for w in range(n):
if jk[q][w] == 'r':
r += 1
dfs(q,w)
if jk[q][w] == 'b':
b += 1
dfs(q,w)

print(r,b)

左阳航

unread,
Dec 29, 2018, 3:57:47 AM12/29/18
to cs10...@googlegroups.com
你这个晶矿的题没有区分“r”和“b”,定义的函数相当于只要不是“#”,就全改了,可以再加一个参数
f=[[0,1],[1,0],[-1,0],[0,-1]]
def dg(x,y,z):
if x<0 or x>=n or y<0 or y>=n or l[x][y] != z:
return
l[x][y]="#"
for k in range(4):
dg(x+f[k][0],y+f[k][1],z)

EVE HE <eve....@gmail.com> 于2018年12月29日周六 下午4:53写道:
--
您收到此邮件是因为您订阅了Google网上论坛上的“cs101pku”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到cs101pku+u...@googlegroups.com
要发帖到此群组,请发送电子邮件至cs10...@googlegroups.com
访问此群组:https://groups.google.com/group/cs101pku
要查看更多选项,请访问https://groups.google.com/d/optout

eve.heee

unread,
Dec 29, 2018, 4:02:31 AM12/29/18
to cs10...@googlegroups.com, cs10...@googlegroups.com
😱原来如此,感谢!


2018年12月29日 16:57左阳航 写道:
你这个晶矿的题没有区分“r”和“b”,定义的函数相当于只要不是“#”,就全改了,可以再加一个参数
f=[[0,1],[1,0],[-1,0],[0,-1]]
def dg(x,y,z):
if x<0 or x>=n or y<0 or y>=n or l[x][y] != z:
return
l[x][y]="#"
for k in range(4):
dg(x+f[k][0],y+f[k][1],z)

EVE HE <eve....@gmail.com> 于2018年12月29日周六 下午4:53写道:
模仿池塘个数定义了一个函数,但是输出一直不对,请帮忙看下哪里错了呀?

--
您收到此邮件是因为您订阅了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