蒟蒻的第一篇题解
前言
本蒟蒻的第一篇题解,跟一位大佬思路一样,一道很水的题
题目大意
题目有点难理解,多读几遍就能通
大概就是找有多少个不同数字,接着输出个数,和最后一次出现的顺序输出
分析
看到这道题就能想到桶排,再看眼范围只有
接下来直接看代码
#include<bits/stdc++.h>
using namespace std;
int m,n,ans,temp;
int gs[1000001];//用来记录个数
int a[1000001],sum[1000001];//答案数组
bool b[1000001];//用来统计
int main(){
cin>>m>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
gs[a[i]]++;
}
for(int i=1;i<=1000000;i++){//从题中得知最大为1000000
if(gs[i]) ans++;
}
for(int i=n;i>=1;i--){//题目说倒着第一个出现
if(b[a[i]]!=true){
sum[++temp]=a[i];
b[a[i]]=true;//标记已访问
}else continue;
}
cout<<ans<<endl;//输出个数
for(int i=ans;i>=1;i--) cout<<sum[i]<<" ";
return 0;//好习惯
}
完结散花!!!
希望管理员能过