92分求优化


setmap都试过了,结果一个 TLE 一个 MLE 。
set版, TLE92 分:

#include<bits/stdc++.h>
#define int long long
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;
set<int>s;
int a[100005],n,k,m;
signed main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i];
	s.insert(1),q.push(1);
	for(int i=1;i<=k;i++,q.pop())
	for(int j=1;j<=n;j++)
	if(!s.count(q.top()*a[j]))
	s.insert(q.top()*a[j]),q.push(q.top()*a[j]);
	cout<<q.top();
	return 0;
}

map版, MLE92 分:

#include<bits/stdc++.h>
#define int long long
using namespace std;
priority_queue<int,vector<int>,greater<int> >q;
unordered_map<int,bool>s;
int a[100005],n,k,m;
signed main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i];
	s[1]=1,q.push(1);
	for(int i=1;i<=k;i++,q.pop())
	for(int j=1;j<=n;j++)
	if(!s[q.top()*a[j]])
	s[(q.top()*a[j])]=1,q.push(q.top()*a[j]);
	cout<<q.top();
	return 0;
}
1 个赞

我是天生和 MLE 有缘吗,怎么调都 MLE 。

已 AC ,@栗子酱 关帖。
开了long long见祖宗(MLE)

1 个赞