文章

1

粉丝

59

获赞

1

访问

4.4k

头像
繁忙的Bush
P1080
发布于2022年6月6日 23:18
阅读数 4.4k

思路: 数据可能会很多,所以采用二分查找+向量数组 (因为是多组数据,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...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发