并查集+map,输出不完整,求助
  • 板块P2814 家谱
  • 楼主JoeBiden2020
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/10/4 09:44
  • 上次更新2023/11/4 04:57:25
查看原帖
并查集+map,输出不完整,求助
432183
JoeBiden2020楼主2021/10/4 09:44
#include <bits/stdc++.h>
using namespace std;
int n,m,f[20001],fa,cnt;
map <int,string> q;
int findd(int k){
    if(f[k]==k)return k;
    else return f[k]=findd(f[k]);
}
char op;
string sb;
int main(){
    ios::sync_with_stdio(false);
    for(register int i=1;i<=n;i++)f[i]=i;
    while(1){
        cin>>op;
        if(op=='#'){
            cin>>sb;
            q[++cnt]=sb;
            fa=cnt;
        }
        if(op=='+'){
            cin>>sb;
            q[++cnt]=sb;
            f[findd(cnt)]=findd(fa);
        }
        if(op=='?'){
            cin>>sb;
            cout<<sb<<" ";
            int len=q.size(),bf;
            for(int i=1;i<=len;i++){
                if(q[i]==sb){
                    bf=i;
                }
            }
            string qq=q[findd(bf)];
            cout<<qq<<endl;
        }
        if(op=='$')break;
    }
}
2021/10/4 09:44
加载中...