畅通工程 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;
}
目录
相关文章
|
消息中间件 网络协议 物联网
MQTT常见问题之物联网设备端申请动态注册时MQTT服务不可用如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
存储 传感器 数据可视化
【软件设计师备考 专题 】IO接口的功能、类型和特性
【软件设计师备考 专题 】IO接口的功能、类型和特性
797 1
|
人工智能 安全 数据管理
百度智能云“千帆大模型平台”升级:大模型最多,Prompt模板最全(下)
百度智能云“千帆大模型平台”升级:大模型最多,Prompt模板最全
578 0
|
19天前
|
存储 人工智能 安全
一文详解Kimi的AI Agent如何跑在阿里云上
Kimi携手阿里云,基于ACK与ACS Agent Sandbox构建端到端Agent基础设施:实现秒级沙箱启动、万级并发弹性调度、会话级状态保持及强安全隔离,支撑“深度研究”“OK Computer”等智能体产品稳定高效运行。(239字)
149 0
一文详解Kimi的AI Agent如何跑在阿里云上
|
9月前
|
传感器 人工智能 算法
聚焦“以技术集成支撑单亩价值创造”与“增加值分配机制区块链存证确权”两大核心本质
“振兴链-技术集成科技小院”以技术集成与区块链为核心,推动农业现代化。通过多维度技术整合(如精准农业、物联网等),突破资源约束,最大化单亩产值;同时利用区块链确权存证,建立透明分配机制,解决传统农业中收益不均问题。技术赋能生产,制度重塑分配,实现效率与公平的平衡,助力乡村振兴与产业升级。典型场景显示,该模式可显著提升单亩价值并确保增值公平分配。
|
人工智能 JSON 自然语言处理
PaddleNLP UIE -- 药品说明书信息抽取(名称、规格、用法、用量)
PaddleNLP UIE -- 药品说明书信息抽取(名称、规格、用法、用量)
441 5
|
JavaScript 前端开发 测试技术
如何判断网站加载速度是否得到优化?
如何判断网站加载速度是否得到优化?
945 155
|
12月前
|
消息中间件 Kafka
【赵渝强老师】Kafka生产者的消息发送方式
Kafka生产者支持三种消息发送方式:1. **fire-and-forget**:发送后不关心结果,适用于允许消息丢失的场景;2. **同步发送**:通过Future对象确保消息成功送达,适用于高可靠性需求场景;3. **异步发送**:使用回调函数处理结果,吞吐量较高但牺牲部分可靠性。视频和代码示例详细讲解了这三种方式的具体实现。
397 5
|
机器学习/深度学习 人工智能 弹性计算
阿里云《AI 剧本生成与动画创作》解决方案深度评测
阿里云《AI 剧本生成与动画创作》解决方案深度评测
577 7
|
存储 监控 物联网
计算机网络的应用
计算机网络已深入现代生活的多个方面,包括通信与交流(电子邮件、即时通讯、社交媒体)、媒体与娱乐(在线媒体、在线游戏)、商务与经济(电子商务、远程办公)、教育与学习(在线教育平台)、物联网与智能家居、远程服务(远程医疗、智能交通系统)及数据存储与处理(云计算、数据共享与分析)。这些应用极大地方便了人们的生活,促进了社会的发展。
871 2
计算机网络的应用

热门文章

最新文章