C++ pair使用案例(一)
在写算法中,如果不想使用结构体,但是例如BFS这样的算法会用到存储一对的情况,
我们可以考虑用pair
注意:需要头文件 map, 比utility容易记忆
使用案例
BFS 奇怪的电梯
题目选自洛谷P1135
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<map>
using namespace std;
int N,A,B;
int book[201];
int nt[201];
queue<pair<int,int> > q;
bool judge(int x){if(book[x] != 1 && x > 0 && x <= N) return true;return false;
}
int bfs(int s){q.push(make_pair(s,0)); book[s] = 1;while(!q.empty()){int f = q.front().first;if(f == B) return q.front().second;if(judge(f+f[nt])) {q.push(make_pair(f+f[nt],q.front().second+1));book[f+f[nt]] = 1;}if(judge(f-f[nt])){q.push(make_pair(f-f[nt],q.front().second+1));book[f-f[nt]] = 1;}q.pop();}return -1;
}
int main(){scanf("%d%d%d",&N,&A,&B);for(int i=1;i<=N;i++)scanf("%d",&nt[i]);int ans = bfs(A);printf("%d",ans);return 0;
}
可以看到,我们在使用使,只需将queue里的类型 从 结构体类型 变成 pair类型,
然后我们在使用“一对”数据时,直接make_pair() 即可。
非常之方便~~
C++ pair使用案例(一)相关推荐
- 零入门kubernetes网络实战-14->基于veth pair、namespace以及路由技术,实现跨主机命名空间之间的通信测试案例
<零入门kubernetes网络实战>视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章继续提供测试 ...
- 第三十天-ssh key企业批量分发自动化管理案例
本文实现一个应用ssh key 批量分发案例 目录 一.ssh key 原理及案例原理简图 1.ssh key 简介 2.rsa和dsa区别 3.ssh-copy-id的特殊应用 4.ssh-copy ...
- Redis简单案例(二) 网站最近的访问用户
原文:Redis简单案例(二) 网站最近的访问用户 我们有时会在网站中看到最后的访问用户.最近的活跃用户等等诸如此类的一些信息.本文就以最后的访问用户为例, 用Redis来实现这个小功能.在这之前,我 ...
- 结合业务场景案例实践分析,倾囊相授美团BERT的探索经验
Google 在 2018 年公布 BERT 的工作之后,引起了 NLP 学术圈以及工业界的极大关注.无论是在各个公司的应用场景中,还是在一些公开的 Benchmark 上,BERT 的效果都得到了验 ...
- Spark rdd 介绍,和案例介绍
1.2.创建RDD 1)由一个已经存在的Scala集合创建. val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8)) 2)由外部存储系统的数据集创建,包括本 ...
- Spark transformation算子案例
Spark支持两种RDD操作:transformation和action 在本文中,将对几个常用的transformation算子进行案例演示,采用Java和Scala两种语言对代码进行编写 其中 ...
- 数据科学与大数据技术的案例_作为数据科学家解决问题的案例研究
数据科学与大数据技术的案例 There are two myths about how data scientists solve problems: one is that the problem ...
- java判断对称素数_SM2非对称算法的原理及实现 Java SM2的代码案例 | 一生孤注掷温柔 | 小奋斗...
SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同 ...
- python常用语法和示例_C语言切换案例教程,语法,示例和规则
python常用语法和示例 使用默认情况下的决策 (Decision making using switch-case-default) Many times in our daily lives, ...
最新文章
- python subprocess_python subprocess - 刘江的python教程
- tableau必知必会之教你做品牌树的树梢(分类桑基图补丁)
- SAP CRM Division customizing
- javascript放在head和body的区别(w3c建议放在head标签中)
- LeetCode 851. 喧闹和富有(拓扑排序)
- c语言宏定义比较三个数大小,C语言中两个宏进行大小对比,其中一个没有定义,这种行为如何定义。...
- 语义信息增强的激光雷达SLAM
- 利用互斥对象实现线程同步的实例说明
- SQL——正则表达式
- Android11 WAPI证书安装流程
- 移动吉比特H2-2光猫超级用户与密码
- 春节要闻回顾 | 数字人民币和元宇宙被搬上春晚;美国财政部报告警告NFT可用于洗钱...
- 红米K30、K40所有版本获取root教程,理论上支持所有小米手机(超级详细,附带原理解释)
- pyhton 将ASCII码转换为字符char(),将字符转换为ASCII码ord()
- PLC常用标志位信号时序编程注意事项
- 从零搭建vue-ssr详细介绍
- Spark SQL_JZZ158_MBY
- linux 查找替换
- Short-term load forecasting with an improved dynamic decomposition-reconstruction-ensemble approach
- Exchange2016 Skype for business 集成之一配置合作伙伴应用程序