1 条题解
-
0
题解
把字符串扫一遍,如果不同就判断两个点的连通性,相连就说明已经可以转化到对方,不相连就把它们连起来,然后答案的计数器 即可。(多操作一次)
时间复杂度:
标程
#include<cstdio> using namespace std; char s[100005],t[100005]; int fa[30]; int find(int x) { if(fa[x]!=x)fa[x]=find(fa[x]); return fa[x]; } int main() { int n,cnt=0; scanf("%d",&n); for(int i=0;i<=30;i++)fa[i]=i; scanf("%s%s",s,t); for(int i=0;i<n;i++) { if(s[i]!=t[i]) { int x=find(s[i]-'a'); int y=find(t[i]-'a'); if(x!=y) { fa[y]=x; cnt++; } } } printf("%d\n",cnt); return 0; }
信息
- ID
- 60
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 176
- 已通过
- 21
- 上传者