用STL,可以自动去重哦
by scyeam_TXWS @ 2024-07-19 18:05:01
所以我的代码哪里错了
by zhangchenyi_10_old @ 2024-07-19 18:20:22
@[zhangchenyi_10_old](/user/1271781) 啊,稍等,我刚看到
by scyeam_TXWS @ 2024-07-19 18:27:26
@[scyeam_TXWS](/user/722620) 我在[其他帖子](https://www.luogu.com.cn/discuss/819559)上找到了问题
关注也不能少
by zhangchenyi_10_old @ 2024-07-19 18:51:27
@[zhangchenyi_10_old](/user/1271781)
是什么问题啊?
~~神他妈我找不到~~
跟我设想的结构体写法一模一样
by scyeam_TXWS @ 2024-07-19 18:59:05
输入零试试,改正代码
```
#include <bits/stdc++.h>
using namespace std;
int t;
struct INFO{
long long a;
int x;
bool flag=1;
}a[50005];
bool cmp1(INFO a,INFO b){
if(a.a!=b.a){
return a.a<b.a;
}
return a.x<b.x;
}
bool cmp2(INFO a,INFO b){
return a.x<b.x;
}
int main(){
scanf("%d",&t);
for(int i=1;i<=t;i++){
int n;
scanf("%d",&n);
for(int j=1;j<=n;j++){
//读入并记录当前位置
scanf("%lld",&a[j].a);
a[j].x=j;
a[j].flag=1;
}
sort(a+1,a+n+1,cmp1);//从小到大排序
for(int j=1;j<=n;j++){
//判断重复
if(a[j].a==a[j+1].a){
a[j+1].flag=0;//标记
}
}
sort(a+1,a+n+1,cmp2);//回归初始位置
for(int j=1;j<=n;j++){
//判断标记
if(a[j].flag){
printf("%lld ",a[j].a);
}
}
printf("\n");
}
}
```
by zhangchenyi_10_old @ 2024-07-19 19:01:44
@[zhangchenyi_10_old](/user/1271781) 欧
by scyeam_TXWS @ 2024-07-19 19:04:00