[BOJ/C+]2075号N次大数
この問題は優先順位キューを用いてN番目の大きな数を求める問題である.メモリ制限は12 MBであることに注意してください.最初はメモリ制限を考慮せずに実現しました.優先キューを大きな順序でソートすると発表しました. N-1、pop、topを返します. これにより、希望する答えが得られますが、メモリの制限を受けます.メモリを減らすには、優先キューのサイズを小さくする必要があります.
宣言優先キューは、より小さな順序でソートされます. 配列値を優先キューに入れる前に、優先キューのサイズを考慮してください. のサイズが挿入する配列値より大きい場合、優先キューのtopがこの値より小さい場合、配列値がプッシュされ、ポップアップされます. のサイズが小さい場合は、アレイの値が高くなります. Code
宣言
Code #include <iostream>
#include <queue>
using namespace std;
int n;
int a;
priority_queue<int, vector<int>, greater<>> pq;
void Input(){
cin>>n;
for(int i=0; i<n*n; i++){
cin>>a;
if(pq.size()<n){
pq.push(a);
}
else if(pq.top()<a){
pq.push(a);
pq.pop();
}
else
continue;
}
}
int Solution(){
return pq.top();
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
Input();
cout<<Solution()<<endl;
return 0;
}
Reference
この問題について([BOJ/C+]2075号N次大数), 我々は、より多くの情報をここで見つけました
https://velog.io/@xx0hn/BOJ-C-2075번-N번째-큰-수
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <iostream>
#include <queue>
using namespace std;
int n;
int a;
priority_queue<int, vector<int>, greater<>> pq;
void Input(){
cin>>n;
for(int i=0; i<n*n; i++){
cin>>a;
if(pq.size()<n){
pq.push(a);
}
else if(pq.top()<a){
pq.push(a);
pq.pop();
}
else
continue;
}
}
int Solution(){
return pq.top();
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
Input();
cout<<Solution()<<endl;
return 0;
}
Reference
この問題について([BOJ/C+]2075号N次大数), 我々は、より多くの情報をここで見つけました https://velog.io/@xx0hn/BOJ-C-2075번-N번째-큰-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol