求助!!
  • 板块学术版
  • 楼主Ristear
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/7 22:43
  • 上次更新2024/4/8 14:08:53
查看原帖
求助!!
720180
Ristear楼主2024/4/7 22:43

我在其他网站上做题

发现加了流加速以后反而内存爆了直接从几M到256M

后来看了一下数据也没超

和P1196差不多 可能数据不一样(洛谷上能过)

程序长这样

#include<bits/stdc++.h>
using namespace std;
int T;
int f[30010];
int d[30010];
int e[30010];
int find1(int x)
{
    return f[x]==x?x:f[x]=find1(f[x]);
}
int find2(int x)
{
    return f[x]==x?0:d[x]=d[x]+find2(f[x]);
}
int find3(int x)
{
    return e[x]==x?x:e[x]=find3(e[x]);
}
int find(int x)
{
    find2(x);find3(x);return find1(x);
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    for(int i=1;i<=30000;i++)
    {
        f[i]=i;
        e[i]=i;
    }
    cin>>T;
    while(--T)
    {
        int x,y;
        char c;
        cin>>c>>x>>y;
        if(c=='M')
        {
            find(x);
            find(y);
            d[f[x]]=1;
            f[f[x]]=e[y];
            e[e[y]]=e[x];
        }
        else
        {
            if(find(x)==find(y))
            {
                cout<<abs(d[x]-d[y])-1<<"\n";
                continue;
            }
            cout<<"-1\n";
        }
         
    }
    return 0;
}

2024/4/7 22:43
加载中...