• 【并查集模板】阿瓦的手套加强版


    题目描述

    阿瓦所在的幻想世界迎来冬季啦!
    阿瓦是只可爱的小猫,她为了这个冬天买了好多好多的手套,兔阿卡举办了一个长长的冬眠营并邀请了阿瓦参加,阿瓦准备每天都戴不同的手套。
    兔阿卡举办的冬眠营一共有T天,每一天的早晨,阿瓦都早早地起床挑选手套。她一共有n只手套,每只手套都互不相同。阿瓦每天会在所有的n只手套中挑选两只佩戴,阿瓦认为戴两只颜色不同的手套是一种怪异的行为,因此她希望每天的两只手套都是相同颜色的。
    阿瓦现在的n只手套都没有染过色,阿瓦来到阿卡的地方,希望阿卡帮忙将每一只手套染一种颜色,阿卡一共有m种颜色的染料,每种染料你都可以看做有无限的供应量.阿瓦想要知道,有多少种染色方案使得自己在冬眠营的每一夭都可以戴上颜色相同的手套。
    当存在一只手套在两种方案中的颜色不一样时,我们说这两种染色方案是不同的。

    输入

    第一行三个数n,m,T。意义如题面中所述。
    接下来T行,第i行两个数xi,yi。表示第i天阿瓦要戴的两只手套的编号。

    输出

    一行一个数表示答案,对998244353取模。
     
    #include <bits/stdc++.h>
    #define ll long long
    using namespace std;
    const ll mod=998244353;
    int pre[100005],ran[100005];
    int n,m,t;
    int init(int n)
    {
        for(int i=1;i<=n;i++)
        {
            pre[i]=i;
            ran[i]=1;
        }
    }
    int find_pre(int x)
    {
        while(x!=pre[x])
            x=pre[x];
        return x;
    }
    bool is_t(int x,int y)
    {
        return find_pre(x)==find_pre(y);
    }
    void unitey(int x,int y)
    {
        int rx,ry;
        rx=find_pre(x);
        ry=find_pre(y);
        if(rx!=ry)
            {pre[rx]=ry;}
    }
    ll qm(ll a,ll b)
    {
        ll ret=1;
        while(b)
        {
            if(b&1)
                ret=ret*a%mod;
            a=a*a%mod;
            b>>=1;
        }
        return ret%mod;
    }
    int main()
    {
        scanf("%d %d %d",&n,&m,&t);
        int cnt=0,ant=0;
        init(n);
        for(int i=0;i<t;i++)
        {
            int x,y;
            scanf("%d %d",&x,&y);
            unitey(x,y);
        }
        for(int i=1;i<=n;i++)
        {
            //cout<<pre[i]<<endl;
            if(pre[i]==i)
                ant++;
        }
        printf("%lld
    ",qm(1ll*m,1ll*ant));
        return 0;
    }
  • 相关阅读:
    高级数据结构(一)----并查集
    分享复杂的线性动态规划问题(一)
    分享利用微信公众号做淘宝客返利机器人系统的3个技巧
    淘宝京东拼多多三合一cms源码怎么搭建优惠券网站
    微信公众号怎么查京东优惠券之3步搭建自己的找券机器人
    【职场提示】什么时间提出涨薪资更合适?
    项目管理之Git
    快速排序,数组去重
    信息安全风险治理——制度与标准篇
    浅谈漏洞管理实践
  • 原文地址:https://www.cnblogs.com/Diliiiii/p/10284761.html
Copyright © 2020-2023  润新知