데이터 구조 우선 대기 열

1575 단어 데이터 구조
형상 화 된 설명: 새치기 할 수 있 는 대열.
헤더 파일:
정의 방법: 비교적 간단 한 일반적인 우선 대기 열 은 직접 정의 할 수 있 습 니 다.
예: priorityqueue,greater >pq;
작은 정수 우선 순위 가 큰 우선 대기 열 을 정의 하 는 것 이다.
사용자 정의 정렬 을 실현 하려 면 연산 자 를 다시 불 러 와 야 합 니 다 ()
예:
struct cmp {
    bool operator() (const int a,const int b) const true{
                return a%10 > b%10; //          
        }
    };

정의 방법: priorityqueue,cmp> pq;
주의: 우선 대기 열 은 top () 을 사용 하여 팀 의 첫 번 째 요 소 를 얻 습 니 다.
일반 동작 속성 보기:
q.size();//  q     
q.empty();//  q    ,    1,    0
q.push(k);// q     k
q.pop();//  q      
q.top();//  q      
q.back();//  q     

주의:
priority_queue  q;
//node      
//       ‘,greater > q;
//   #include   
//      “>”      ,“>>”      
priority_queue ,less >q;

예제: 축 수 (Uva 136) P120
예 를 들 어 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15 등 은 2, 3, 5 를 제외 한 수 를 정리 하지 못 하고 1500 번 째 축 수 를 구한다.
코드:
#include 
#include 
#include 
#include 
using namespace std;
typedef long long ll;
const int coeff[3]={2,3,5};

int main() {
    priority_queue,greater > pq;
    sets;
    pq.push(1);
    s.insert(1);
    for(int i=1;;i++) {
        ll x =pq.top();
        pq.pop();
        if(i==1500) {
            cout<

좋은 웹페이지 즐겨찾기