文章
1
粉丝
59
获赞
1
访问
4.8k
 
思路: 数据可能会很多,所以采用二分查找+向量数组 (因为是多组数据,vector数组需要在每次测试结束清空,我这里采用了清空数据+释放空间的方法)
#include <bits/stdc++.h>
using namespace std;
vector<int> vis;
bool cmp(int a,int b)
{
    return a<b;
}
int fnd(int x)
{
    int h=vis.size()-1;
    int l=0;
    while(l<=h)
    {
        int mid=(l+h)/2;
        if(vis[mid]==x)
            return mid;
        else if(vis[mid]<x)
            l=mid+1;
        else
            h=mid-1;
    }
}
int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int m,n,x;
        cin>>m>>n;
        while(m--)
        {
            cin>>x;
            vis.push_back(x);
        }
        sort(vis.begin(),vis.end(),cmp);
        while(n--)
        {
            cin>>x;
            vis.erase(vis.begin()+fnd(x));
        }
        for(int i=0;i<vis.size();i++)
            cout<<vis[i]<<endl;
        vis.clear();//清空数据
        vector <int>().swap...
    
登录后发布评论
暂无评论,来抢沙发