P5318 【深基18.例3】查找文献题解

用head记录这一起点的最后一条边,
next记录这一起点的上一条边。
注意要按照参考文献的倒叙排序(要按顺序看,而链式前向星是逆着来的,也就是为什么最简单的zhima1182请按输入顺序倒序输出每个顶点以及所连的终点以及权值。

#include <bits/stdc++.h>
using namespace std;
struct {//这一个struct是模板!建议copy!
struct {
int to;
int next;
} edge[1000005];
int head[100005];
int cnt;
void clear() {//清空
memset(head, -1, sizeof head);
memset(edge, 0, sizeof edge);
cnt = 0;
}
void add(int x, int y) {
edge[cnt].to = y;
edge[cnt].next = head[x];
head[x] = cnt++;
}
} Map_Edge;
int n, m;
struct input {
int x,y;
} in[1000005];
bool cmp(input a, input b) {
return a.y > b.y;
}
bool vis[100005];
void dfs(int x) {
cout << x << ' ';
vis[x] = true;
for (int i = Map_Edge.head[x]; i != -1; i = Map_Edge.edge[i].next) {
if(!vis[Map_Edge.edge[i].to]) {
dfs(Map_Edge.edge[i].to);
}
}
}
void bfs() {
queue<int>q;
q.push(1);
vis[1] = true;
cout << 1 << ' ';
while(q.size()) {
int temp = q.front();
q.pop();
for (int i = Map_Edge.head[temp]; i != -1; i = Map_Edge.edge[i].next) {
if(!vis[Map_Edge.edge[i].to]) {
cout << Map_Edge.edge[i].to << ' ';
vis[Map_Edge.edge[i].to] = true;
q.push(Map_Edge.edge[i].to);
}
}
}
}
int main() {
Map_Edge.clear();//以防万一
cin >> n >> m;
for (int i = 1; i <= m; i++) {
int x, y;
cin >> in[i].x >> in[i].y;
}
sort(in + 1, in + m + 1, cmp);
for(int i = 1; i <= m; i++) Map_Edge.add(in[i].x, in[i].y);
dfs(1);
cout << endl;
memset(vis,false,sizeof vis);
bfs();
return 0;
}

完结撒花!!

P5318 【深基18.例3】查找文献题解(链式前向星)的更多相关文章

  1. 题解 P5318 【【深基18.例3】查找文献】

    题目传送门 根据本蒟蒻细致粗略的分析 这明显是一道水题模(du)板(liu)题 可我竟然没有一遍AC; 为更好地食用本题解需要了解以下内容 1.dfs(大法师深搜) 2.bfs(冰法师广搜)/dij最 ...

  2. P4715 【深基16.例1】淘汰赛

    P4715 [深基16.例1]淘汰赛 题目描述 有 2^n(n≤7) 个国家参加世界杯决赛圈且进入淘汰赛环节.我经知道各个国家的能力值,且都不相等.能力值高的国家和能力值低的国家踢比赛时高者获胜.1 ...

  3. 洛谷 P5706 【深基2.例8】再分肥宅水

    题目连接: P5706 [深基2.例8]再分肥宅水 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我提交的: 1 #include<iostream> 2 #inclu ...

  4. P2240 【深基12.例1】部分背包问题

    P2240 [深基12.例1]部分背包问题 题目描述 阿里巴巴走进了装满宝藏的藏宝洞.藏宝洞里面有 N(N \le 100)N(N≤100) 堆金币,第 ii 堆金币的总重量和总价值分别是 m_i,v ...

  5. 【vector+pair】洛谷 P4715 【深基16.例1】淘汰赛

    题目:P4715 [深基16.例1]淘汰赛 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这道题因为数据范围不大,所以做法可以非常简单,使用一个vector加上pair就可以了: ...

  6. Scala 深入浅出实战经典 第79讲:单例深入讲解及单例背后的链式表达式

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  7. mongodb--游标与链式查找

    一:游标 [能不用游标的地方就不要用游标,它是占用数据库资源的] find操作是返回一个游标,为了方便我们查看结果,mongodb shell会自动迭代结果.[游标也是递增的] 2.迭代结果的两种方式 ...

  8. 题解 P5718 【【深基4.例2】找最小值】

    题目传送门 思路 介绍一种新方法--sort排序,它的格式是这样的sort(a+1,a+n+1,cmp);,我们只需要把a数组排好序,然后输出第\(1\)个元素即可. 定义a数组与变量\(n\)并输入 ...

  9. 题解 P5712 【【深基3.例4】Apples】

    题目传送门 思路 仔细读题后,我们可以发现,输出可以分成\(2\)种情况,apple加s与apple不加s,所以我们可以使用if/else来实现. 接着,我们读入n. int n; cin>&g ...

  10. 题解 P5733 【【深基6.例1】自动修正】

    题目传送门 分析: 1.这道题可以说是一个字符串的练习好题.我们先来了解一下字符串.在这道题中,建议使用\(string\) \(string\)是\(C++\).\(java\).\(VB\)等编程 ...

随机推荐

  1. python 之将xmind转为excel用例文件

    1.xmind文件模板如下所示(最后一个子级为预置条件) 2.excel用例模板 3.获取xmind文件数据并转成字典形式 from xmindparser import xmind_to_dict ...

  2. 在IQuery中使用除法提示"Numeric value does not fit in a System.Decimal"

    起因 有个需求是需要汇总(单耗=单件用量*1+损耗率)的值,由于现在我们数据库中存的XX率都是放大了一百倍(即10%数据库存的是10),然后就很自然的写了个linq汇总如下 materialOrder ...

  3. vue3学习第一天

    第一章 Options API与Composition API 重写双向绑定 vue2 基于Object.defineProperty()实现 vue3 基于Proxy proxy与Object.de ...

  4. [编程基础] Python列表解析总结

    在本教程中,我们将学习使用Python列表解析(list comprehensions)相关知识 1 使用介绍 列表解析是一种基于现有列表创建列表的句法结构.列表解析提供了创建列表的简洁方法.通常需要 ...

  5. NOIP2022 退役记

    无所谓,我还能卡队线. 无所谓,我还能被卡校线.

  6. CF896E Welcome home, Chtholly

    题面 维护一个\(n(n\leqslant 100000)\)个元素序列\(a_1,a_2,\dots,a_n\),有\(m(m\leqslant 100000)\)次操作,分为如下两种. 给定\(l ...

  7. 学习ASP.NET Core Blazor编程系列二十一——数据刷新

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...

  8. 如何让Java编译器帮你写代码

    作者:京东零售 刘世杰 导读 本文结合京东监控埋点场景,对解决样板代码的技术选型方案进行分析,给出最终解决方案后,结合理论和实践进一步展开.通过关注文中的技术分析过程和技术场景,读者可收获一种样板代码 ...

  9. Flutter 3.7 新特性:介绍后台isolate通道

    Flutter 3.7 发布,本人对其中后台 isolate 通道比较感兴趣,迫不及待翻译了下Aaron Clarke文章,第一次翻译,有不足地方欢迎各位大佬们评论区指正,我将持续更新到本文,谢谢. ...

  10. File、FileReader、Base64、Blob基本使用以及Buffer、ArrayBuffer之间的转换

    File文件 (File)对象获取文件的信息.实际上,File 对象是特殊类型的 Blob,Blob 的属性和方法都可以用于 File 对象.在js中,一般通过input元素,点击上传文件成功之后返回 ...