畅通工程 HDU - 1232

简介: 畅通工程 HDU - 1232

链接

HDU - 1232

一些话

伞兵人做伞兵事,题目用0作为多组输入的结尾,写题的时候我用while(~scanf("%d",&n)),结果死活不认结尾0,(最气人的是我看的一篇题解也是这样写的)然后去查了while(~scanf("%d",&n))的用法:

while(~scanf("%d", &n))  等价于 while(scanf("%d",&n)!=EOF)

此题要用while(scanf("%d",&n) && n)

套路:

1、多组输入

1、多组输入

(1)条件:多组数据,以EOF作为结尾或无特殊结尾

对策:while(~scanf("%d", &n))注意:题目以-1为结尾时,要用套路三而不是这个套路

(2)条件:多组数据,以0作为结尾

对策:while(scanf("%d", &n) && n)  

(3)条件:多组数据,以k作为结尾

对策:while(scanf("%d",&n) && n !=  k)

2、并查集合并:

条件:需要合并两个并查集

void un(int x,int y){                
       int fx = find(x);
       int fy = find(y);
       if(fx != fy){
               f[fx] = fy;
       }
}

3、并查集查找:


条件:普通的并查集根节点查找,没有特殊功能


int find(int x){
        while(f[x] != x) x = f[x];
        return x;
}


4、并查集数量:


条件:求并查集的存在数量、检查点位连通情况


(1)数据给n个点位,从1-n编号


int cnt = 0;
for(int i = 1;i <= n;i++){
        if(f[i] == i) cnt++;
}
if(cnt == 1)//全部点位连通


(2)不给点位数,只给范围:


要配合记录点位存在情况的数组:


int cnt = 0;
for(int i = 1;i < N:i++){
        if(ap[i] && f[i] == i)cnt++;
}
if(cnt == 1)//全部点位连通

暂时是这么多,路径压缩这题没用到,虽然总结了但是不在这写

最后是ac代码

#include <iostream>
using namespace std;
const int N = 1e3 + 10;
int f[N],cnt[N];
int find(int x){
    while(f[x] != x){
        x = f[x];
    }
    return f[x];
}
void un(int x,int y){
    int fx = find(x);
    int fy = find(y);
    if(fx != fy){
        f[fx] = fy;
    }
}
int main(){
    int n,m;
    while(scanf("%d",&n) && n){
        scanf("%d",&m);
        for(int i = 1;i <= n;i++){
            f[i] = i;
            cnt[i] = 1;
        }
        while(m--){
            int x,y;
            scanf("%d%d",&x,&y);
            un(x,y);
        }
        int res = 0;
        for(int i = 1;i <= n;i++){
            if(f[i] == i) res++;
        }
        printf("%d\n",res - 1);
    }
    return 0;
}
目录
相关文章
|
关系型数据库 分布式数据库 PolarDB
PolarDB for PostgreSQL 开源训练营获奖名单公布!
PolarDB for PostgreSQL 开源训练营截至今日圆满结营~快来看看自己有没有中奖吧~
PolarDB for PostgreSQL 开源训练营获奖名单公布!
|
9天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1197 4
|
8天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1114 87
|
6天前
|
机器学习/深度学习 物联网
Wan2.2再次开源数字人:Animate-14B!一键实现电影角色替换和动作驱动
今天,通义万相的视频生成模型又又又开源了!Wan2.2系列模型家族新增数字人成员Wan2.2-Animate-14B。
569 11
|
18天前
|
人工智能 运维 安全
|
8天前
|
云栖大会
阿里云云栖大会2025年9月24日开启,免费申请大会门票,速度领取~
2025云栖大会将于9月24-26日举行,官网免费预约畅享票,审核后短信通知,持证件入场
1680 12
|
1天前
|
资源调度
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
除了nrm-pm,还有哪些工具可以管理多个包管理器的源?
212 127
|
9天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
344 0

热门文章

最新文章