#17625:


a0905081237@gmail.com (哭哭饅頭)

學校 : 不指定學校
編號 : 70032
來源 : [140.115.52.134]
最後登入時間 :
2023-08-02 16:51:41
d716. Unique Snowflakes(強化版) -- UVa11572加強版 | From: [111.82.9.179] | 發表日期 : 2019-04-27 23:21

#include #include #include #include #include using namespace std; int compare(const void *a, const void *b) { int c = *(int *)a; int d = *(int *)b; if(c < d) {return -1;} else if (c == d) {return 0;} else return 1; } bool cmp(int i, int j) { return i < j ; } int main() { vector vec ; int total ; scanf("%d",&total); while(total > 0) { int num ; scanf("%d",&num); for(int i = 0, x ; i < num ; i++) { scanf("%d",&x); vec.push_back(x); } sort(vec.begin(),vec.end(),cmp); //for(int i = 0 ; i < num ; i++) // printf("%d ",vec[i]); int same = 0 ; for(int i = 0 ; i < num ; i++) { if( i + 1 < vec.size() && vec[i] == vec[i+1] ) same++; } printf("%d\n",num-same); vec.clear(); total--; } }

 

 

 

排序後就很容易知道兩相鄰數字是否相同, 紀錄相同的數字數量後, 總數字減去相同數量 ,那麼這中間出了啥問題?

 
ZeroJudge Forum