求助,只有后四点有分

P4305 [JLOI2011] 不重复数字

你**棕**了
by _C_language_ @ 2024-03-01 21:10:30


问题出在第 29 行,一旦数据中有 0,这个 if 循环就不会被执行;加上一行 `a[0].num=-1;` 就可以了
by houwz351 @ 2024-03-01 21:13:58


```cpp #include <bits/stdc++.h> #define int long long using namespace std; struct node { int num,id; }a[50005],b[50005]; bool cmp(node x,node y) { if(x.num!=y.num) return x.num<y.num; return x.id<y.id; } bool cmp1(node x,node y) { return x.id<y.id; } main() { ios::sync_with_stdio(0);cin.tie(0),cout.tie(0); int t; cin>>t; a[0].num=-1; while(t--){ memset(b,0,sizeof(b)); int n,cnt=0; cin>>n; for(int i=1;i<=n;i++) cin>>a[i].num,a[i].id=i; sort(a+1,a+1+n,cmp); for(int i=1;i<=n;i++){ if(a[i].num!=a[i-1].num) b[++cnt].num=a[i].num,b[cnt].id=a[i].id; } sort(b+1,b+1+cnt,cmp1); for(int i=1;i<=cnt;i++) cout<<b[i].num<<" "; cout<<"\n"; } return 0; } ```
by houwz351 @ 2024-03-01 21:14:38


才发现你已经调出来了(
by houwz351 @ 2024-03-01 21:17:17


|