当前位置: 首页 > web >正文

洛谷5318C语言题解

这道题一开始想直接使用邻接矩阵解决

BUT:

如果你要建立一个二维数组,内存就爆了

SO——邻接表

为什么邻接表能行?

  1. 空间利用率更高

  2. 构建也方便

构建时需要注意: 这里相当于是一个有向图而不是无向图

就拿题目中的样例来说

进行dfs,如果你是按照无向图进行构建的话

输出的结果回事12563748

而题目中要的是12563784

当然book函数进行记录也是必不可少的(毕竟是图而不是树)

#include<stdio.h>#include<stdlib.h>int n,m;
typedef struct node{int data;struct node*next;
}node;
node*nod[100010];
int book[100010];
void insertedge(int x,int y){node*p=(node*)malloc(sizeof(node));p->data=y;node*tmp=nod[x];while(tmp->next&&tmp->next->data<y){tmp=tmp->next;}p->next=tmp->next;tmp->next=p;
}void dfs(int index){if(index>n)return ;printf("%d ",nod[index]->data);book[index]=1;node*p=nod[index]->next;while(p!=NULL){if(!book[p->data]){dfs(p->data);book[p->data]=1;}p=p->next;}}void bfs(){int que[100000];int book1[100010]={0};int head,tail;head=tail=1;que[tail]=nod[1]->data;book1[nod[1]->data]=1;tail++;while(head<tail){printf("%d ",que[head]);node*p=nod[que[head]]->next;while(p){if(book1[p->data]==0){que[tail++]=p->data;book1[p->data]=1;}p=p->next;}head++;}}
int main(){scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){nod[i]=(node*)malloc(sizeof(node));nod[i]->data=i;nod[i]->next=NULL;}while(m--){int x,y;scanf("%d%d",&x,&y);insertedge(x,y);}dfs(1);printf("\n");bfs();}

http://www.xdnf.cn/news/1440.html

相关文章:

  • AIGC(生成式AI)试用 31 -- AI做软件程序测试 2
  • JEnv-for-Windows​管理JDK版本
  • web刷题笔记
  • 基于deepseek的模型微调
  • HCIA-Access V2.5_18_网络管理基础_3_ 华为接入网络网络管理系统概览
  • 2025年04月23日Github流行趋势
  • Byte-Buddy系列 - 第3讲 byte-buddy与jacoco agent冲突问题
  • Qt Creator中自定义应用程序的可执行文件图标
  • node.js 实战——(path模块 知识点学习)
  • 计算机视觉基础
  • 编程实现ESP8266分别作为服务端 客户端
  • 集结号海螺捕鱼服务器调度与房间分配机制详解:六
  • nginx部署前端项目时,正常访问前端页面成功后,浏览器刷新报404解决访问
  • ​​OSPF核心机制精要:选路、防环与设计原理​
  • 一篇文章学会开发第一个ASP.NET网页
  • 金融租赁质检的三重业务困境 质检LIMS系统的四大价值赋能场景
  • “时间”,在数据处理中的真身——弼马温一般『无所不能』(DeepSeek)
  • MCU开发学习记录11 - ADC学习与实践(HAL库) - 单通道ADC采集、多通道ADC采集、定时器触发连续ADC采集 - STM32CubeMX
  • Python jsonpath库终极指南:json数据挖掘的精准导航仪
  • 消息中间件RabbitMQ02:账号的注册、点对点推送信息
  • MySQL运算符
  • kafka安装、spark安装
  • 5.学习笔记-SpringMVC(P53-P60)
  • Spring Boot 的配置加载顺序
  • Elasticsearch学习
  • 【Hive入门】Hive基础操作与SQL语法:DDL操作全面指南
  • 国内ip地址怎么改?详细教程
  • AI搜索AI SEO排名:国际采购商的搜索行为正在被AI重塑
  • 高防IP是什么
  • 批量处理多个 Word 文档:插入和修改页眉页脚,添加页码的方法