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

devtools/2024/9/23 6:08:12/

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;		}
}

http://www.ppmy.cn/devtools/44796.html

相关文章

如何让input框在用户输入后,文字居中显示

要让 input 框中的文字在用户输入后居中显示&#xff0c;你通常不能直接通过 CSS 样式来实现&#xff0c;因为 input 元素的文本对齐通常是基于其类型&#xff08;如 text, password, search, 等&#xff09;和浏览器默认样式来决定的。但是&#xff0c;有一些方法可以尝试或变…

第22讲:文件操作

文章目录 第22讲&#xff1a;文件操作1. 为什么使用文件2. 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 3. 二进制文件和文本文件&#xff1f;4. 文件的打开和关闭4.1 流和标准流4.1.1 流4.1.2 标准流 4.2 文件指针4.3 文件的打开和关闭 5. 文件的顺序读写5.1 顺序读写函数介…

万界星空科技MES系统功能介绍

制造执行系统或MES 是一个全面的动态软件系统&#xff0c;用于监视、跟踪、记录和控制从原材料到成品的制造过程。MES在企业资源规划(ERP) 和过程控制系统之间提供了一个功能层&#xff0c;为决策者提供了提高车间效率和优化生产所需的数据。 万界星空科技MES 系统基础功能&am…

互联网政务应用安全管理规定:使用安全连接方式访问

前几日&#xff0c;由中央网络安全和信息化委员会办公室、中央机构编制委员会办公室、工业和信息化部、公安部等4部门联合制定的《互联网政务应用安全管理规定》&#xff08;以下简称规定&#xff09;发布了&#xff0c;规定定义了互联网政务应用&#xff0c;也对互联网政务应用…

07.爬虫---使用session发送请求

07.使用session发送请求 1.目标网站2.代码实现 1.目标网站 我们以这个网站作为目标网站 http://www.360doc.com/ 注册用户 注册后从登录界面获取到这些信息 2.代码实现 import requestssession requests.Session() url http://www.360doc.com/ajax/login/login.ashx u…

Tomcat源码解析(七):底层如何获取请求url、请求头、json数据?

Tomcat源码系列文章 Tomcat源码解析(一)&#xff1a;Tomcat整体架构 Tomcat源码解析(二)&#xff1a;Bootstrap和Catalina Tomcat源码解析(三)&#xff1a;LifeCycle生命周期管理 Tomcat源码解析(四)&#xff1a;StandardServer和StandardService Tomcat源码解析(五)&…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十三)- 微服务(3)

6. Eureka 和 Nacos 对比 共同点 : 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 不同点 : 1.nacos支持服务端主动检测提供者状态&#xff0c;临时实例采用心跳模式&#xff0c;非临时实例采用主动检测模式 临时实例心跳不正常会被剔除&#xff0c;非临时实…

C语言贪心算法——解硬币

题目&#xff1a;有1元&#xff0c;5元&#xff0c;10元&#xff0c;100元&#xff0c;500元的硬币各从c1枚, c5枚&#xff0c;c10枚&#xff0c;c50枚&#xff0c;c100枚, c500枚&#xff0c;现在要用这些硬币支付A元&#xff0c; 最少需要多少枚硬币 输入&#xff1a;第一行有…