Codeforces Round #628 (Div. 2) 比赛人数9400
[codeforces 1325B] CopyCopyCopyCopyCopy 自小到大排序+unique去重成功应用
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
也在线测评地址https://codeforces.com/contest/1325/problem/B
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
B - CopyCopyCopyCopyCopy | GNU C++11 | Accepted | 46 ms | 200 KB |
题意清晰,每个数组有n个元素,n个这样的数组组成新数组,求最大严格递增序列。
这样考虑,第一数组找出最小元素,第二个数组找出第2小元素,第三个数组找出第3小元素,...,第n个数组找出最大元素。
关键是找到这自小到大的n个元素,记得去重。
第一次在比赛中,成功应用了STL中的unique函数。若不明,请看STL之unique()去重函数
以下是AC代码
#include <cstdio>
#include <algorithm>
using namespace std;
int a[100010];
int main(){
int t,n,m,i;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&a[i]);
sort(a+1,a+1+n);
m=unique(a+1,a+1+n)-(a+1);
printf("%d\n",m);
}
}