zoukankan      html  css  js  c++  java
  • <JZOJ5910>duliu

    愤怒

    考场想到正解

    然后觉得我的“正解”和正解差不多 一样的效果

    被忽略的与正解的不同也想到了

    然而 我懒得再写

    于是快乐10

    气坏了

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #include<map>
    #define rint register int
    using std::sort;
    using std::map;
    //using std::cout;
    //using std::endl;
    template <class T>inline void read(T &X)
    {
        X=0;int W=0;char ch=0;
        while(!isdigit(ch))W|=ch=='-',ch=getchar();
        while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
        X=W?-X:X;return;
    }
    int n,cnt=0,ans=0;
    long long sta[100010],end[100010],xors=0,xore=0,sta2[100010],end2[100010],fa[100010];
    bool boo(true);
    long long find(long long x){return fa[x]==x?x:fa[x]=find(fa[x]);}
    map<int,int>num;
    int main()
    {
    //    freopen("duliu.in","r",stdin);
    //    freopen("duliu.out","w",stdout);
        read(n);
        for(rint i=1;i<=n;++i)
            read(sta[i]),sta2[i]=sta[i],xors^=sta[i];
        sta[n+1]=xors;sta2[n+1]=xors;
        for(rint i=1;i<=n;++i)
        {
            read(end[i]),end2[i]=end[i];
            xore^=end[i];
            if(xors==end[i])boo=false;
        }
        end[n+1]=xore;end2[n+1]=xore;
        ++n;
        sort(sta2+1,sta2+n+1);
        sort(end2+1,end2+n+1);
    
        for(rint i=1;i<=n;++i)
        {
            if(sta2[i]!=end2[i]){printf("-1
    ");return 0;}
        }
        cnt=0;
        for (int i=1;i<=n;i++)
        {
            if (sta[i]!=end[i]||i==n)
            {
                if (i<n) ans++;
                if (!num[sta[i]]) cnt++,num[sta[i]]=cnt;
                if (!num[end[i]]) cnt++,num[end[i]]=cnt;
            }
        }
        if (ans==0)
        {
            printf("0
    ");
            return 0;
        }
        for (int i=1;i<=cnt;i++) fa[i]=i;
        for (int i=1;i<=n;i++) if (sta[i]!=end[i]) fa[find(num[sta[i]])]=find(num[end[i]]);
        for (int i=1;i<=cnt;i++) if (fa[i]==i) ans++;
        printf("%d
    ",ans-1); 
    return 0;
    }
  • 相关阅读:
    [Algorithm] Delete a node from Binary Search Tree
    [Javascript] Check both prop exists and value is valid
    对象的多态性
    spring 定时任务(3)--配置多个定时任务
    能上QQ无法打开网页
    [置顶] Ajax核心--XMLHttpRequest对象
    linux内核--进程地址空间(一)
    [SQL]一个删选数据的例子,使用GROUP、DISTINCT
    [置顶] 腾讯2014软件开发笔试题目
    DBS小结
  • 原文地址:https://www.cnblogs.com/pile8852/p/9818669.html
Copyright © 2011-2022 走看看