defisvalid(x,y):if x<0or x>=n:returnFalseif y<0or y>=n:returnFalseif adj[x][y]=='.':returnFalsereturnTruedefisvalid2(x,y):if x<0or x>=n:returnFalseif y<0or y>=n:returnFalsereturnTrue
dx=[1,-1,0,0]
dy=[0,0,1,-1]defisnotadj(x,y):
flag=Truefor i inrange(4):
nx,ny=x+dx[i],y+dy[i]if isvalid2(nx,ny):if adj[nx][ny]=='.':
flag=Falsereturn flag
defdfs(x,y):
flag=Falseif isnotadj(x,y):
flag=True
vis[x][y]=Truefor i inrange(4):
nx,ny=x+dx[i],y+dy[i]if isvalid(nx,ny)andnot vis[nx][ny]:
flag=dfs(nx,ny)or flag
return flag
n=int(input())
adj=[]for i inrange(n):
adj.append(list(input()))
ans=0
num=0
vis=[[Falsefor i inrange(n)]for j inrange(n)]for i inrange(n):for j inrange(n):if adj[i][j]=='#'andnot vis[i][j]:if dfs(i,j):
ans+=1
num+=1print(num-ans)
大臣的旅费
defdfs(cur,length):global end
global maxlength
if length>maxlength:
maxlength=length
end=cur
for i in adj[cur]:
ne,v=i
ifnot vis[ne]:
vis[ne]=True
dfs(ne,length+v)return
n=int(input())
adj=[[]for i inrange(n+1)]for i inrange(n-1):
x,y,z=map(int,input().split())
adj[x].append((y,z))
adj[y].append((x,z))
vis=[Falsefor i inrange(n+1)]
end=-1
maxlength=-1
vis[1]=True
dfs(1,0)
vis=[Falsefor i inrange(n+1)]
maxlength=-1
vis[end]=True
dfs(end,0)print(maxlength*10+(maxlength*(maxlength+1))//2)