60分,后四个tle,想知道问题在哪

P4305 [JLOI2011] 不重复数字

读得太慢,开快读。 ```cpp ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0); ``` [加在主函数开头](https://www.luogu.com.cn/record/155288834)
by yx666 @ 2024-04-11 12:44:46


@[qq1508020550](/user/334389) 将输入输出分别用scanf与printf就行
by xiaozhang6666 @ 2024-04-11 15:05:25


@[yx666](/user/825020) 谢谢大佬
by qq1508020550 @ 2024-04-11 15:14:33


@[xiaozhang6666](/user/978778) 谢谢大佬
by qq1508020550 @ 2024-04-11 15:14:47


@[qq1508020550](/user/334389) 试试这个 ``` #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 kervinyan @ 2024-05-07 19:08:16


|