Hdu 3763 CD

    xiaoxiao2025-06-10  66

    链接:Hdu 3763 CD

    题意简述

        求有重复数的个数;

    解题思路

        我开始用map,结果MLE,这题二分查找,时间复杂度为O(mlog(n))

    代码如下

    #include<iostream> using namespace std; int a[1000101]; int binary_search(int l, int r, int x){ while(l <= r){ int mid = l + r >> 1; if(a[mid] == x){ return mid; } else if(x > a[mid]){ l = mid + 1; } else r = mid - 1; } return -1; } int main(){ int n, m; while(scanf("%d %d", &n, &m) != EOF &&(m + n)){ int cnt = 0; for(int i = 0; i < n; i++){ scanf("%d", &a[i]); } while(m--){ int temp; scanf("%d", &temp); if(binary_search(0, n - 1, temp) != -1){ cnt++; } } printf("%d\n", cnt); } return 0; }

     

    最新回复(0)