求助
查看原帖
求助
309854
OyamaMahiro_Kawaii楼主2023/1/11 20:21

和第三篇题解vectorvector思路的代码基本一致,但后四个点WAWA,蒟蒻求调

代码如下

#include<bits/stdc++.h>
#define mod 30007
using namespace std;
int q,n,x;
bool opt;
struct node{
    vector<int> l[mod],tmp;
    bool vis[mod];
	bool insert(int x){//加入哈希表
		int Mod=x%mod;
		for(int i=0;i<l[Mod].size();i++)
			if(l[Mod][i]==x) 
				return 0;
		l[Mod].push_back(x);
		if(!vis[Mod]){
			vis[Mod]=1;
			tmp.push_back(Mod);
		}
		return 1;
	}
	void clear(){
		for(int i=0;i<tmp.size();i++){
			l[tmp[i]].clear();
			vis[tmp[i]]=0;//清空
		}
		tmp.clear();
	}
}Hash[2];
int main()
{
	cin>>q;
	while(q--){
		Hash[0].clear();
		Hash[1].clear();
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&x);
			opt=0;
			if(x<0) x=-x,opt=1;//分正数和负数两个哈希表
			if(Hash[opt].insert(x)){
				if(opt) putchar('-');
				printf("%d ",x);
			}
		}
		cout<<endl; 
	}
	return 0;
}
2023/1/11 20:21
加载中...