PAT乙级真题1083 || 是否存在相等的差(详解,C/C++示例,测试点分析)

「PAT乙级真题解析」Basic Level 1083 是否存在相等的差 (问题分析+完整步骤+伪代码描述+提交通过代码) 题设设定, 给定一组数, 要求计算每一个数与它的序号的差值, 给出重复的差值以及重复的次数, 。于是我们明白我们要做的是计算和统计。 阅读详情

公众号:计算机黑科学大全
【欢迎关注微信公众号:计算机黑科学大全,在对话框回复:PAT乙级真题】获取全部真题详解及代码示例,邀请大家加入PAT算法刷题交流qq群:821388108
个人博客:https://mzwang.top

是否存在相等的差

题目描述:

给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?

输入格式:

输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。

输出格式:

按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。

输入样例:

8
3 5 8 6 2 1 4 7

输出样例:

5 2
3 3
2 2

题目来源:PAT乙级1083
作者:CHEN, Yue
单位:浙江大学

问题解决:

解题思想

这里使用map容器,差值作为键,重复次数作为值,因为map容器中的元素是按键升序排序的,因此,输出时需要逆序输出,这里给出了使用迭代器逆序输出map容器中元素的方法。

坑点提醒

题目要求输出的是有重复的差值及其重复次数,也就是输出的某个差值其重复次数一定是大于1的。

代码示例(C/C++)

小提示:请将以下代码保存为.cpp格式(C++程序)左右滑动代码以查看完整代码(复制本文链接到电脑端浏览效果更佳)

#include <iostream>
#include <map>

using namespace std;
map <int, int> mp;  //map容器中按键值自动升序排序
int main() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        int tmp;
        cin >> tmp;
        mp[tmp > i ? tmp - i : i - tmp]++;  //相应差值个数统计
    }
    map <int, int> :: iterator it = mp.end();   //it指向最后一个元素的下一个地址
    for (it--; it != mp.begin(); it--) {
        if (it -> second >1) {
            cout << it -> first << " " << it -> second << endl;
        }
    }
    if (it -> second > 1) {
        cout << it -> first << " " << it -> second << endl; //输出mp的第一个元素
    }
    return 0;
}

微信号:QKD2015WMZ

沁恒CH32V30X学习笔记02--GPIO的使用教程及2次封装驱动 刚复位后,GPIO 口运行在初始状态,这时大多数 IO 口都是运行在状态所有的 GPIO 口都可以被配置外部中断输入通道,但一个外部中断输入通道最多只能映射到一个GPIO 引脚上,且外部中断通道的序号必须和 GPIO 端口的位号一致,,两方都是一对一的关系。复用功能。 阅读详情

相关推荐

告别报错!Win10下Autodock Vina 1.2.3保姆级安装与避坑指南

本文提供了Win10系统下Autodock Vina 1.2.3的完整安装与实战指南,涵盖环境配置、分子文件预处理、对接参数优化及结果分析等关键步骤。通过详细的避坑技巧和优化方案,帮助用户高效完成分子对接任务,特别适合生物信息学研究人员和药物发现领域的初学者。

weixin_29969209的博客 403

1083-是否存在相等的差(PAT-B)

题目如下: 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重...

[霜序初七]的博客 395

NI-HIL学习开篇

自我介绍下,四年零部件厂工作经验,一年(至今)主机厂工作经验,负责BMS/VCU方向软硬件测试。 学习目的:把握新能源汽车的测试发展趋势,顺应历史的洪流。 学习目标:1.掌握HIL开发测试流程中的IO配置、开环验证、闭环模型开发及调试、自动化测试 2.掌握第三方模型的搭建及simulink关联仿真(2019.05.21新增:需巩固练习matlab基础——2...

masonson的专栏 4177

PAT 1083 是否存在相等的差 (20分)

1083 是否存在相等的差 (20分) 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。 输入样例:

ganlanA的博客 356

Comsol超声空化气泡仿真:从基础理论到工业应用实践

本文详细介绍了Comsol超声空化气泡仿真的基础理论及工业应用实践。通过解析超声空化现象、Comsol模型搭建流程及求解器优化技巧,帮助工程师掌握气泡仿真技术,提升超声波清洗和乳液制备等工业应用的效率与质量。

weixin_27966471的博客 252

告别蓝牙音质妥协:用ESP32和PCM5102搭建WiFi无损音频播放器(附完整代码)

本文详细介绍了如何利用ESP32微控制器和PCM5102 DAC芯片构建一套完整的WiFi无损音频流媒体系统,彻底摆脱蓝牙协议的音质束缚。从硬件原理到软件实现,包括核心器件选型、电路设计、I2S音频驱动实现以及系统优化方案,帮助音频发烧友实现高保真无线音频传输。

weixin_30733003的博客 542

(乙)1083 是否存在相等的差

#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cmath&gt; using namespace std; int main() { int n,a[10010],b[10010],maxx=0; cin&gt;&gt;n; memset(a,0,sizeof(a)); memset(a,0,sizeof(...

Reticent_Man的博客 426

软件工程导论实践:从需求到架构的机票预订系统全流程解析

本文深入解析机票预订系统从需求分析到架构设计的全流程实践,涵盖业务流程、功能建模、模块化设计、性能优化等关键环节。通过实际项目经验,分享软件工程导论在复杂系统开发中的应用技巧,包括数据流图绘制、E-R图设计、微服务架构及高并发处理等实战策略,助力开发者构建高效可靠的机票预订系统。

weixin_29202213的博客 414

1083 是否存在相等的差 (20 分)

给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格...

丁世杰的博客 590

以高通camera 申请ion内存看dma-buf

1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...

兔兔里个花兔的博客 6444

推荐系统中召回率Recall计算方式附代码

Recall(召回率)是指在所有实际有交互的用户 - 物品对中,推荐系统成功预测出的比例。具体来说,设所有有交互的用户 - 物品对为S,推荐系统预测出的用户 - 物品对为T,则Recall的计算公式为:

优快云 精品推荐 1842

PAT乙级解题目录

PAT乙级的解题目录 写在前面: 之前刷题的话,自己只用 C 和java ,C过于底层方法不太实用,做题还是比较吃亏的java有时候会超时。前段时间在github上无意间看到柳婼学姐的解题和个人博客,后来又追到 优快云,emmm,被学姐的优秀吓到了

ZQYnn's blog 580

C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

本文详细介绍如何将串口通信将数据进行本次存储,主要介绍常用的csv、txt格式文件,由多年实战经验总结,绝对干货!

qq_34059233的博客 7238

PAT乙 1083. 是否存在相等的差 (20)

题目地址:PAT乙1083.是否存在相等的差(20)题目描述:    给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?易错分析:1.    注意看题目。。要存在相等的差才输出,换言之,只出现一次的差值是不输出的解题过程:       这题可以用map来建立映射,...

Invokar的博客 465

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

1083 是否存在相等的差 (20 分)

PAT 乙级真题 1083 是否存在相等的差 (20 分) Python 实现。 **题意描述:** 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? **输入格式:** 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。

花花生的博客 476

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

PAT——1083 是否存在相等的差

给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?

Jamaple的博客 187

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

1083. 是否存在相等的差 (20)

1083. 是否存在相等的差 (20)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?输入格式:输入第一行给出一个正整数 N(2 &lt;= N &...

qq_34639685的博客 389

PAT乙 1083 是否存在相等的差 (20分)(C C++)

【题目描述】 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 【输入】 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 【输出】 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。 【输入样例】 8 3 5 8 6 2 1

ネロ・クラウディウス 190

1083 是否存在相等的差 (20 分)(附详细注释,逻辑分析)

写在前面 map封装–排序–遍历输出 遍历、排序实现存在问题 耗时,决定分值高低 时间取决于知识短板 根据键排序,实现较简单;不是根据值排序,注意题目!!! 测试用例 input : 8 3 5 8 6 2 1 4 7 ooutput : 5 2 3 3 2 2 ac代码 适合根据值排序 #include<map> #include<vector&gt...

kngines 660

[PAT乙级]1083 是否存在相等的差 (思路+精简代码)

1083 是否存在相等的差 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。 输入样例: 8 3 5

分享XCPC常用算法和相关技巧 273

1083 是否存在相等的差

1083 是否存在相等的差 题目: 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。 输入样例: 8

wmy01234的博客 317

1083 是否存在相等的差(20 分)

1083 是否存在相等的差(20 分) 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的...

码奴生来就只知道前进 918

1083 是否存在相等的差 (20分)

1083 是否存在相等的差 (20分) 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。

一只大番茄的博客 219

PATA1083_测试点3巨坑(恶心度:⭐️⭐️⭐️⭐️)

一开始我是以学号为key,自己还想分数和名字可能测试点里会有重复的。但是!居然测试点里学号有重复的,导致我一直过不去测试点3。本来十分钟搞定的题目,改了40多分钟。在我快放弃的时候,把key换成分数就过了。。。真的无语???? #include<bits/stdc++.h> using namespace std; struct stu { string name, id; int g; }; unordered_map<int, stu> mp; vector&

YYHCODE的博客 197

1083 是否存在相等的差(20分)

1083 是否存在相等的差 (20分) 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: 输入第一行给出一个正整数 N(2 ≤ N ≤ 10 000),随后一行给出 1 到 N 的一个洗牌后的排列,第 i 个数表示正面写了 i 的那张卡片背面的数字。 输出格式: 按照“差值 重复次数”的格式从大到小输出重复的差值及其重复的次数,每行输出一个结果。

weixin_45344430的博客 515
上一篇: PAT乙级真题1082 || 射击比赛(详解,C/C++示例,测试点分析)
下一篇: PAT乙级真题1084 || 外观数列(详解,C/C++示例,测试点分析)
程序员王同学
博客等级 码龄9年 181粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值