首页 > 其他分享 >abc--282--E

abc--282--E

时间:2022-12-18 23:12:48浏览次数:36  
标签:abc fa -- kpow int ans 282 mod

题意

主要就是每次操作删去一个数,知道最后只剩下一个数了

思路

竟然是最大生成树
每次删去一个点,也就相当于将两个点进行合并了,其实也不用管是将那个点删去了反正是合并了。
n个点,刚好可以合并n-1次,也就是每次找未合并的最大边就可以了
ps:竟然能将这里联系起来,思维还是不够强呀。

生成树:每次将树扩大一点,也就相当于可选的少了一个点,或者说是树上多了一个点,只需要n-1次操作

代码

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int M=505;

int n,mod,a[M];
int kpow(int a,int b) {
    int ans=1;
    while(b) {
        if(b&1)ans=ans*a%mod;
        b>>=1;
        a=a*a%mod;
    }
    return ans;
}

int calc(int x,int y) {
    return (kpow(x,y)+kpow(y,x))%mod;
}

int fa[M];
int find(int x) {
    return x==fa[x]?fa[x]:fa[x]=find(fa[x]);
}

struct node {
    int u,v,w;
    bool operator<(const node T)const {
        return w>T.w;
    }
};
vector<node>v;

signed main() {
    cin>>n>>mod;
    for(int i=1;i<=n;i++)cin>>a[i],fa[i]=i;
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)
            v.push_back({i,j,calc(a[i],a[j])});
    sort(v.begin(),v.end());
    int ans=0;
    for(auto [x,y,w]:v) {
        int fx=find(x),fy=find(y);
        if(fx==fy)continue;
        fa[fx]=fy;
        ans+=w;
    }
    cout<<ans;
    return 0;
}

标签:abc,fa,--,kpow,int,ans,282,mod
From: https://www.cnblogs.com/basicecho/p/16991213.html

相关文章

  • Ubuntu22.04运行Appmage文件
    解决方法sudoapt-getupdatesudoaptinstallfuselibfuse2chmoda+x*.appimage参考资料https://bynss.com/linux/918425.html......
  • [图像处理] YUV图像处理入门2
    1分离YUV420中YUV分量本程序中的函数主要是将YUV420P视频数据流的第一帧图像中的Y、U、V三个分量分离开并保存成三个文件。函数的代码如下所示:/***@file 1yuv_split......
  • 【JVM】三色标记算法
    本文已收录至Github,推荐阅读......
  • [图像处理] YUV图像处理入门1
    目前数字图像处理技术已经应用生活各个方面,但是大部分教程都是利用第三方库(如opencv)对RGB图像格式进行处理。对于YUV图像格式的图像处理教程较少。于是博主搬运总结了多......
  • 《在那遥远的地方》-- 王洛宾
    在那遥远的地方,有位好姑娘,人们走过了她的帐房,都要回头留恋地张望。     她那粉红的笑脸,好像红太阳,她那活泼动人的眼睛,好像晚上明媚的月亮。     我愿变一......
  • 监听感悟
    把监听看成一个app(软件)。。每个软件要想客户端找到通过端口。每个app都要有端口。。。。客户端通过tnsname中的ip地址找到监听所在服务器!!!通过端口识别要找到的软件是......
  • 腾讯QQ v9.7.0.28910 绿色优化版
    修改历史:2022.12.14:自改官方 9.7.0.28910最新正式版本2022.08.30:自改官方9.6.6.28796 最新正式版本2022.06.24:自改官方9.6.6.28796 最新正式版本2022.05.23:重新修正......
  • 022.开发请假申请View层(2)
    1.leave_form.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>请假申请单</title><!--引入样式--><linkrel="styles......
  • [图像处理] YUV图像处理入门5
    12yuv420转换为rgb(opencvmat)yuv格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式,而且自己造轮子工作量太大。因此通常都会将yuv转换为rgb,再......
  • MongoDB 索引类型介绍
    转载请注明出处:目录1.单字段索引2.复合索引3.多key索引4.其他类型索引5.索引额外属性6.MongoDB索引相关的常用sql命令Mo......