后四点正确,其它全错

P4305 [JLOI2011] 不重复数字

用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


|