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

2023年西安交通大学校赛(E-雪中楼)

E.雪中楼

在这里插入图片描述

如果算出按南北的序列,再转成从低到高的编号序列,岂不是太麻烦了,幸好,没有在这方面费长时间,而是意识到,本质就是要从低到高的编号序列,所以我就按样例模拟了一下,当a[i]=0时说明编号为i的楼,是前面所有楼中最低的,这时i就该放前面,如果为j,说明它比j高,这时i就该放到j后面。
答案上是用的链表,这样就可以实现,不断插入合适的位置。而我起初用的定义find和insert,查找位置,再插入,果不其然,时间超限。
如果不太会链表,可以看看下面的方法:
既然a[i]=0,就放前面,那我可以从后往前遍历,遇到0,就把i输出,这样就直接放前面了。而遇到其他值就先存起来,存的时候,存两个a[i]和i,也就是i你要放到a[i]后边。当你输出a[i]的时候,就将存储里边接到他后边也输出。记住,先存先出。

代码

#include<bits/stdc++.h>
using namespace std;
map<int,int> q[200005];
void print(int i)
{for(auto it:q[i]){cout<<it.second<<' ';	if(q[it.second].size()!=0)	print(it.second);这里要递归,把接在输出后面的值,也输出}	
}
int main()
{int n,k=0,a[200005];cin>>n;		for(int i=1;i<=n;i++){cin>>a[i];}for(int i=n;i>=1;i--){if(a[i]==0) {cout<<i<<" ";print(i);}elseq[a[i]][k++]+=i;		}
}

相关文章:

  • 【深度学习】YOLOv10实战:20行代码将笔记本摄像头改装成目标检测监控
  • 实现样式一键切换
  • 超融合架构下,虚拟机高可用机制如何构建?
  • android 应用安装目录
  • 跨境电商多店铺:怎么管理?风险如何规避?
  • 微信小程序-页面配置
  • PostgreSQL常用插件
  • Kafka 集群部署(CentOS 单机模拟版)
  • MySQL 索引的使用
  • 03-树2 List Leaves(浙大数据结构PTA习题)
  • C语言分支和循环(2)
  • vue路由跳转之【编程式导航与传参】
  • 万界星空科技MES系统功能介绍
  • 接口基础知识 工具使用
  • 使用 Vue 3 和 qrcode.js 开发二维码显示组件
  • $translatePartialLoader加载失败及解决方式
  • .pyc 想到的一些问题
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 2017 年终总结 —— 在路上
  • 2017前端实习生面试总结
  • echarts花样作死的坑
  • Electron入门介绍
  • express + mock 让前后台并行开发
  • flutter的key在widget list的作用以及必要性
  • HTTP--网络协议分层,http历史(二)
  • JavaScript创建对象的四种方式
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • pdf文件如何在线转换为jpg图片
  • Python进阶细节
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • text-decoration与color属性
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • V4L2视频输入框架概述
  • 阿里云Kubernetes容器服务上体验Knative
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 面试总结JavaScript篇
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 王永庆:技术创新改变教育未来
  • 用mpvue开发微信小程序
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (day6) 319. 灯泡开关
  • (二)JAVA使用POI操作excel
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十三)Maven插件解析运行机制
  • (十一)手动添加用户和文件的特殊权限
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • .gitignore文件_Git:.gitignore
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net 中viewstate的原理和使用