正在学python,写了几道题,本题WA29
不要介意,昨天晚上才学,感激不尽
n,m=map(int,input().split())
a,b,fa,val=[],[],[0 for i in range(50000)],[0 for i in range(50000)]
def to(x,y):
return x*(m+1)+y
def find(x):
if(fa[x]==x):
return x
fa[x]=find(fa[x])
return fa[x]
for i in range(n):
a.append(input())
for i in range(n):
b.append(input())
for i in range(n+1):
for j in range(m+1):
fa[to(i,j)]=to(i,j)
for i in range(n):
for j in range(m):
if(a[i][j]=='.'):
continue
if(a[i][j]=='\\' or a[i][j]=='X'):
fa[find(to(i,j))]=find(to(i+1,j+1))
val[to(i,j)]+=1
val[to(i+1,j+1)]+=1
if(a[i][j]=='/' or a[i][j]=='X'):
fa[find(to(i,j+1))]=find(to(i+1,j))
val[to(i+1,j)]+=1
val[to(i,j+1)]+=1
for i in range(n):
for j in range(m):
if(b[i][j]=='.'):
continue
if(b[i][j]=='\\' or b[i][j]=='X'):
fa[find(to(i,j))]=find(to(i+1,j+1))
val[to(i,j)]-=1
val[to(i+1,j+1)]-=1
if(b[i][j]=='/' or b[i][j]=='X'):
fa[find(to(i,j+1))]=find(to(i+1,j))
val[to(i+1,j)]-=1
val[to(i,j+1)]-=1
for i in range(n):
for j in range(m):
if(find(to(i,j))==to(i,j)):
continue
val[fa[to(i,j)]]+=abs(val[to(i,j)])
val[to(i,j)]=0
ans=0
for i in range(n):
for j in range(m):
if(find(to(i,j))==to(i,j)):
if(val[to(i,j)] != 0):
ans+=val[to(i,j)]
elif(val[fa[to(i,j)]]==0):
val[fa[to(i,j)]]=2
ans+=2
print(ans>>1)