0pts
查看原帖
0pts
1269609
yiwugougou楼主2024/12/13 17:00

rt

源代码

#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> > q;
int arr[110];
map<int,int> mp;
int main(){
	int n,k,now;
	cin>>k>>n;
	for(int i=1;i<=k;i++){
		cin>>arr[i];
		q.push(arr[i]);
		mp[arr[i]]=1;
	}
	for(int i=1;i<=n && !q.empty();i++){
		int temp=q.top();
		q.pop();
		while(temp==q.top()){
			q.pop();
		}
		int flag;
		for(int j=1;j<=k;j++){
			if(temp%arr[j]==0){
				flag=arr[j];
				break;
			}
		}
		for(int j=flag;j<=k;j++){
			if(arr[j]*temp==6){
				cout<<1;
			}
			q.push(temp*arr[j]);
		}
		q.push(temp);
	}
	for(int i=1;i<n;i++){
//		cout<<q.top()<<endl;
		q.pop();
	}
	cout<<q.top();
    return 0;
}

调试

#include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,greater<int> > q;
int arr[110];
map<int,int> mp;
int main(){
	int n,k,now;
	cin>>k>>n;
	for(int i=1;i<=k;i++){
		cin>>arr[i];
		q.push(arr[i]);
		mp[arr[i]]=1;
	}
	for(int i=1;i<=n && !q.empty();i++){
		int temp=q.top();
		q.pop();
		while(temp==q.top()){
			q.pop();
		}
		int flag;
		for(int j=1;j<=k;j++){
			if(temp%arr[j]==0){
				flag=arr[j];
				break;
			}
		}
		for(int j=flag;j<=k;j++){
			if(arr[j]*temp==6){
				cout<<1;
			}
			q.push(temp*arr[j]);
		}
		q.push(temp);
	}
	for(int i=1;i<n;i++){
		cout<<q.top()<<endl;
		q.pop();
	}
	cout<<endl<<q.top();
    return 0;
}

样例:

4 19

2 3 5 7

正确输出: 27

我的输出: 6

用调试代码看了一眼:

2

3

5

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

请问这是咋么回事!!!

2024/12/13 17:00
加载中...