IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 2021年秋PTA乙 7-5 取帽子 (25 分) -> 正文阅读

[数据结构与算法]2021年秋PTA乙 7-5 取帽子 (25 分)

拼题er们觉得戴帽子会令自己看上去很帅,所以他们不管到哪里都会戴着帽子。有一天他们去到一家餐厅,服务员把他们的帽子收集了堆起来保管。当大家要离开的时候,发现帽子被像上图那样摞起来了。于是你的任务就是帮他们排好队,使得每个人都能按顺序顺利取到自己的帽子。

已知每顶帽子的大小都不相同,并且帽子的尺寸跟帽子主人的体重有关 —— 越重的人戴的帽子就越大。

输入格式:

输入第一行给出一个正整数 N (≤104),为拼题er的人数。随后一行给出 N 个不同的帽子尺寸,为不超过 105 的正整数,顺序是从帽子堆的底部向上给出。最后一行给出 N 个不同的体重,顺序对应编号从 1 到 N 的拼题er。体重是不超过 106 的正整数。一行中的数字以空格分隔。

输出格式:

在一行中按照取帽子的顺序输出帽子主人的编号。数字间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

10
12 19 13 11 15 18 17 14 16 20
67 90 180 98 87 105 76 88 150 124

输出样例:

3 4 8 6 10 2 1 5 9 7

样例说明:

第一顶帽子的尺寸是最大的 20,所以对应第 3 个人的最大体重 180,于是第 3 个人排在最前面。

第二顶帽子的尺寸是第 6 小的 16,对应第 6 小的体重 98,是第 4 个人,于是第 4 个人下一个走。

以此类推。

代码:

#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
using namespace std;
vector<int> v1,v2;
map<int,int> mp1,mp2;
int main() {
	int n,x,num=1;
	cin>>n;
	for(int i=0; i<n; i++) {	//帽子:大小为 1~n
		cin>>x;
		v1.push_back(x);
		mp1[x]=1;
	}
	for(auto it=mp1.begin(); it!=mp1.end(); it++) {
		it->second=num;  	//帽子大小排序
		num++;
	}
	for(int i=0; i<n; i++) {	//体重:排序为 1~n
		cin>>x;
		v2.push_back(x);
		mp2[x]=i+1;
	}
	sort(v2.begin(),v2.end());
	for(int i=n-1; i>=0; i--) {
		if(i!=n-1) cout<<" ";
		cout<<mp2[v2[mp1[v1[i]]-1]];
	}
	return 0;
}

都行

#include<bits/stdc++.h>
using namespace std;
map<int,int> hat_mp,weigh_mp;
vector<int> hat_vec;
set<pair<int,int>> weigh;
int main() {
	int n,x,k=0;
	cin>>n;
	for(int i=0; i<n; i++) { // 帽子
		cin>>x;
		hat_vec.insert(hat_vec.begin(),x);
		hat_mp[x]++;
	}
	for(auto it=hat_mp.begin(); it!=hat_mp.end(); it++) { // 帽子 - 大小排序
		hat_mp[it->first]=k;
		k++;
	}
	for(int i=0; i<n; i++) { // 体重
		cin>>x;
		weigh.insert({x,i});
	}
	k=0;
	for(auto it=weigh.begin(); it!=weigh.end(); it++) { // 人的编号->体重排序
		weigh_mp[k]=it->second+1;
		k++;
	}
	for(int i=0; i<n; i++) { // 帽子大小--对应体重的人的编号
		if(i>0) cout<<" ";
		cout<<weigh_mp[hat_mp[hat_vec[i]]];
	}
	return 0;
}

要聚精会神,一走神就容易出错误

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:51:10  更:2022-02-22 20:52:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:27:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码