试题 算法训练 自行车停放

提交此题   评测记录

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。

输入格式

第一行一个整数n。

第二行一个整数x。表示第一辆自行车的编号。

以下n-1行,每行3个整数x,y,z。

z=0时,表示编号为x的自行车恰停放在编号为y的自行车的左边

z=1时,表示编号为x的自行车恰停放在编号为y的自行车的右边

输出格式

从左到右输出停车棚里的自行车编号

样例输入

4

3

1 3 1

2 1 0

5 2 1

样例输出

3 2 5 1

数据规模和约定

n<=100000

自行车编号为不超过100000的正整数。

来自 <“蓝桥杯”练习系统>

#include "iostream"
#include "cstdio"
#include "string"
#include "cstring"
#include "algorithm"
#include "iomanip"using namespace std;const int N=200;struct Node{int val=-1;Node* left=NULL;Node* right=NULL;
};Node* pos[100009];int main(){int n,s;cin>>n>>s;Node* head=new Node;Node* tail=new Node;Node* tempS=new Node;tempS->val=s;head->right=tempS;tempS->left=head;tempS->right=tail;tail->left=tempS;Node* dd=new Node;dd->right=tempS;pos[s]=dd;for(int i=0;i<n-1;i++){int x,y,tag;cin>>x>>y>>tag;Node* a=new Node;a->val=x;if(tag){//放在y的右边 Node* dummy=pos[y];dummy=dummy->right;a->left=dummy;a->right=dummy->right;dummy->right->left=a;dummy->right=a;Node* temp=new Node;temp->right=a;pos[x]=temp;}else{//放在y的左边 Node* dummy=pos[y];dummy=dummy->right;a->right=dummy;a->left=dummy->left;dummy->left->right=a;dummy->left=a;Node* temp=new Node;temp->right=a;pos[x]=temp;}}dd=head->right;while(dd->val!=-1){cout<<dd->val<<" ";dd=dd->right;} cout<<endl;return 0;
} 

(真想记录一下自己的脑残思路!)

思路 :

就这么说吧,这道题目,自己总是想着玩一些花活,比如想用vector来存,然后发现那个iterator自己实在是搞不定(当然是用dev,实在是看不到任何变量)。

然后更是想着用单链表暴力搜索一下,结果瞬间80.

最后实在是老老实实的按照双链表的思路,用pos[N]数组存储到每一个车在双链表的的位置信息,到后面直接定位到x就可以直接使用车的位置了,所以更加简洁。

其实就是一个静态的查询,有点类似hash的做法,把地址信息存储下来而已。

试题 算法训练 自行车停放相关推荐

  1. 蓝桥杯试题 算法训练 Have You Ever Heard About the Word?

    试题 算法训练 Have You Ever Heard About the Word? 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 一个字符串的子串是该字符串的一段连续子序列,如 ...

  2. C++试题 算法训练 相邻数对、画图

    试题 算法训练 相邻数对 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1. 输入格式 输入的第一行包含一个整数n,表示 ...

  3. 蓝桥杯试题 算法训练 印章

    试题 算法训练 印章 C/C++ 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 ...

  4. 试题 算法训练 翻转旋转变换

    试题 算法训练 翻转旋转变换 资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 现在有一张n行m列的由" ...

  5. 试题 算法训练 盾神与离散老师2

    试题 算法训练 盾神与离散老师2 资源限制 **时间限制:**1.0s 内存限制:256.0MB 问题描述 有一天,盾神觉得自己离散课快要挂了,于是亲自找到离散老师WH,请教如何才能不挂科.WH老师说 ...

  6. 试题 算法训练 预测身高

    试题 算法训练 预测身高  Lan   2020-03-13 19:04   54 人阅读  0 条评论 资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述: 生理卫生老师在课堂上娓 ...

  7. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  8. 蓝桥杯 试题 算法训练 无聊的逗 C++ 详解 - 未完善

    题目: 逗志芃在干了很多事情后终于闲下来了,然后就陷入了深深的无聊中.不过他想到了一个游戏来使他更无聊.他拿出n个木棍,然后选出其中一些粘成一根长的,然后再选一些粘成另一个长的,他想知道在两根一样长的 ...

  9. 试题 算法训练 黑色星期五

    试题 算法训练 黑色星期五 题目描述: 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是& ...

最新文章

  1. Spring AOP AspectJ Pointcut Expressions With Examples--转
  2. 如何优雅地训练大型模型?
  3. 女子质疑无限极产品致女儿心肌损害:将继续维权讨说法
  4. 数字证书管理工具keytool常用命令介绍
  5. 使用git克隆GitHub仓库时报错解决方案
  6. 2018 计蒜之道 复赛
  7. Java ObjectOutputStream writeFloat()方法与示例
  8. BZOJ 1878 HH的项链 | 主席树
  9. jeecg输入中文查询导表为空_简单查询
  10. Eclipse的PyDev插件安装及解决安装后找不到的问题
  11. qml 信号槽第二次才响应_QML中各种代理的用法
  12. 使用freemarker模板生成word文档
  13. VC++多线程工作笔记0005---线程间通信
  14. sqlserver2008r2 还原bak文件
  15. Java(TM) Platform SE binary已停止工作
  16. 聊聊论文分区,SCI,JCR,CCF分区你弄懂了吗?
  17. 【GitHub通过ssh方法下载详细配置过程】
  18. UCOS操作系统——任务管理(一)
  19. COMSOL学习经验(不定期更新中哦~)
  20. 女孩假扮大学生跪地乞讨月入万元

热门文章

  1. 机器学习入门2--回归之线性回归及梯度下降
  2. 数据结构初阶——第三节-- 单链表
  3. Pytorch_finetune代码解读
  4. 在用springBoot做开发的启动项目的时候出现如下异常
  5. iOS开发常用(三方类库,工具,高仿APP,技术网站 ,快捷键 ,技术干货)
  6. 阿里云语音合成使用流程完全记录
  7. 华三指定启动配置文件_华三交换机的一些配置命令
  8. 使用text2image将文字转换成图片
  9. SAP TABLES 表汇总
  10. 黑马程序员——0C语言——基础语法