P8598 [蓝桥杯 2013 省 AB] 错误票据

(凑个封面)

题目链接就放在这啦

P8598 [蓝桥杯 2013 省 AB] 错误票据

题意

看到这道题,其实题目意思我能看明白,但是给出的样例我不太理解。我以为题目的意思是输入ID 的时候会按顺序输入,而且我不太明白分行输入的目的😂。

好吧,人家说啥是啥。会错意了。。。

①题目中,输入的 ID 号并不需要按照顺序输入。

②分行输入是因为题目中的输入数据可能非常多,如果全部放在一行,可能会使得输入数据过于复杂和混乱。

已知:所有票据的 ID 号是连续的

问题:求 断号 ID 和 重号 ID

思路

虽然在题目理解上有一些偏差,不过整体我能想到就是求这些输入的数据中,本应该一段连续的数据中,哪个数据没有,哪个数据重复。

我想到桶排序那种存储一个数据有没有的方式。这道题数据不大于1e5,那就开一个足够的数组,将输入的数据作为数组的下标,每输入一个数据(下标),数组就++,记录的是该数据出现的次数。

输入完成之后,遍历这个数组,查看一下每个元素的个数,if语句判断一下即可。

另一种思路是,我们之间把数据存进数组,调用sort函数对数组元素进行排序之后,遍历数组,if语句判断一下。得出答案。

两种差别不大。

代码

cpp 复制代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N];//数据个数
int main()
{
    int n;
    cin>>n;
    int x=0;
    int ans1,ans2;
    while(cin>>x)
    {
        a[x]++;
    }
    for(int i=0;i<10001;i++)
    {
        if(a[i]==0 && a[i-1]==1 && a[i+1]==1)
        {
            ans1=i;
        }
        if(a[x]>1)ans2=i;
    }
    cout<<ans1<<" "<<ans2;
    return 0;
}

cpp 复制代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int q;
int a[N];//存储数据
int m,n;
int main()
{
    cin>>q;
    int i=0;
    while(cin>>a[i])i++;
    sort(a,a+i);
    for(int j=0;j<i;j++)
    {
        if(a[j]==a[j+1])n=a[j];
        if(a[j+1]-a[j]>1)m=a[j]+1;
    }
    cout<<m<<" "<<n;
    return 0;
}

注意点

题目中的输入输出格式比较特殊,需要读取和输出大量的数据。

在 C++ 中,cin >> a[i] 这样的语句会自动忽略空格和换行符 。也就是说,它会从输入流中读取并且跳过任何的空格或者换行符,直到遇到一个非空格非换行的字符,然后开始读取一个整数。不会把两个数据之间的空格或者每行数据之间的回车换行读进去。

由于在while循环条件中直接输入数据,因此数据输入完成之后,需要 ctrl+z 结束输入


这几天状态不好emmm。有点水,,

有问题欢迎指出,一起加油!!!

相关推荐
前端小超超2 天前
capacitor配置ios应用图标不同尺寸
ios·蓝桥杯·cocoa
汉克老师4 天前
第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(4 、移动石子)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
旭意4 天前
C++微基础蓝桥杯之旅9.9-9.12
c++·算法·蓝桥杯
HAH-HAH5 天前
【蓝桥杯 2024 国 Java A】粉刷匠小蓝
c++·学习·数学·算法·职场和发展·蓝桥杯·组合数学
汉克老师5 天前
第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(2 、寻宝石)
c++·蓝桥杯·蓝桥杯c++·c++蓝桥杯·蓝桥杯选拔赛
汉克老师5 天前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(5、机甲战士)
c++·算法·蓝桥杯·01背包·蓝桥杯c++·c++蓝桥杯
Jared_devin5 天前
二叉树算法题—— [蓝桥杯 2019 省 AB] 完全二叉树的权值
数据结构·c++·算法·职场和发展·蓝桥杯
aaaweiaaaaaa8 天前
c++基础学习(学习蓝桥杯 ros2有C基础可看)
c++·学习·蓝桥杯·lambda·ros2·智能指针·c++类
汉克老师8 天前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(4、最大空白区)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
scx201310049 天前
P13929 [蓝桥杯 2022 省 Java B] 山 题解
c++·算法·蓝桥杯·洛谷