这两份代码有区别吗
查看原帖
这两份代码有区别吗
231946
CuSO4_and_5H2O楼主2022/7/7 15:27

RT,两份代码,一个对,一个60,我认为两者都一样

60分代码

#include<bits/stdc++.h>
#define int long long
const int N=200005;
using namespace std;

int t,n,a;
vector<int> vec[N+1];
struct node{
	int a,b;
};
queue<node> que;

void put(int x)
{
	int wuy=abs(x)%N;
	int siz=vec[wuy].size();
	for(int i=0;i<siz;i++)
		if(vec[wuy][i]==x) 
			return ;
	que.push(node{wuy,siz});
	vec[wuy].push_back(x);
}

signed main(){
	cin>>t;
	for(int qwq=1;qwq<=t;qwq++)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			scanf("%lld",&a);
			put(a);
		}
		while(!que.empty())
		{
			cout<<vec[que.front().a][que.front().b]<<' ';
			vec[que.front().a].erase(vec[que.front().a].begin());
			que.pop();
		}
		cout<<endl;
	}
}

100分代码

#include<bits/stdc++.h>
#define int long long
const int N=200005;
using namespace std;

int t,n,a;
vector<int> vec[N+1];
struct node{
	int a,b;
};
queue<node> que;

int put(int x)
{
	int wuy=abs(x)%N;
	int siz=vec[wuy].size();
	for(int i=0;i<siz;i++)
		if(vec[wuy][i]==x) 
			return 0;
	vec[wuy].push_back(x);
	return 1;
}

signed main(){
	cin>>t;
	for(int qwq=1;qwq<=t;qwq++)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			scanf("%lld",&a);
			if(put(a)) printf("%lld ",a);
		}
		for(int i=0;i<=N;i++)
			vec[i].clear();
		cout<<endl;
	}
}

2022/7/7 15:27
加载中...