这年头有人帮调py吗
  • 板块P1524 十字绣
  • 楼主dying
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/11/12 21:30
  • 上次更新2023/11/4 00:46:24
查看原帖
这年头有人帮调py吗
85593
dying楼主2021/11/12 21:30

正在学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)
2021/11/12 21:30
加载中...