[bzoj1455]罗马游戏

本文介绍了一种结合并查集与堆的数据结构实现方法,主要用于处理集合合并及删除操作。通过具体代码示例,详细解释了如何进行集合查找、合并及删除最小元素等关键操作。
部署运行你感兴趣的模型镜像

题目大意

需要兹瓷集合合并与删去集合内最小值。

可并堆

还能说什么呢,裸的……

#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
const int maxn=1000000+10;
int fa[maxn],dis[maxn],left[maxn],right[maxn],a[maxn],root[maxn];
bool bz[maxn];
int i,j,k,l,t,n,m;
char ch;
char get(){
    char ch=getchar();
    while (ch!='M'&&ch!='K') ch=getchar();
    return ch;
}
int read(){
    int x=0;
    char ch=getchar();
    while (ch<'0'||ch>'9') ch=getchar();
    while (ch>='0'&&ch<='9'){
        x=x*10+ch-'0';
        ch=getchar();
    }
    return x;
}
int getfa(int x){
    return fa[x]?fa[x]=getfa(fa[x]):x;
}
int merge(int x,int y){
    if (!x||!y) return x+y;
    if (a[x]>a[y]) swap(x,y);
    right[x]=merge(right[x],y);
    if (dis[left[x]]<dis[right[x]]) swap(left[x],right[x]);
    dis[x]=dis[right[x]]+1;
    return x;
}
int deletemin(int x){
    return merge(left[x],right[x]);
}
int main(){
    n=read();
    fo(i,1,n) a[i]=read(),root[i]=i;
    m=read();
    fo(i,1,m){
        ch=get();
        if (ch=='M'){
            j=read();k=read();
            if (bz[j]||bz[k]) continue;
            j=getfa(j);
            k=getfa(k);
            if (j==k) continue;
            fa[j]=k;
            root[k]=merge(root[j],root[k]);
        }
        else{
            j=read();
            if (bz[j]) printf("0\n");
            else{
                j=getfa(j);
                printf("%d\n",a[root[j]]);
                bz[root[j]]=1;
                root[j]=deletemin(root[j]);
            }
        }
    }
}

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

光伏储能虚拟同步发电机VSG并网仿真模型(Similink仿真实现)内容概要:本文档介绍了光伏储能虚拟同步发电机(VSG)并网仿真模型的Simulink实现方法,重点在于通过建立光伏储能系统与虚拟同步发电机相结合的仿真模型,模拟其在并网过程中的动态响应与控制特性。该模型借鉴了同步发电机的惯性和阻尼特性,提升了新能源并网系统的频率和电压支撑能力,增强了系统的稳定性与可控性。文档还提及相关电力系统仿真技术的应用,包括逆变器控制、储能配置、并网稳定性分析等,并提供了完整的Simulink仿真文件及技术支持资源链接,便于科研人员复现与二次开发。; 适合人群:电气工程、自动化、能源系统等相关专业的研究生、科研人员及从事新能源并网技术开发的工程师。; 使用场景及目标:①用于研究光伏储能系统在弱电网条件下的并网稳定性问题;②掌握虚拟同步发电机(VSG)控制策略的设计与仿真方法;③支持高水平论文(如EI/SCI)的模型复现与创新研究;④为微电网、智能电网中的分布式能源接入提供技术参考。; 阅读建议:建议结合提供的Simulink模型文件与文档说明逐步操作,重点关注VSG控制模块的参数设置与动态响应分析,同时可延伸学习文中提及的MPPT、储能管理、谐波分析等相关技术,以提升综合仿真能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值