priority_queue&queue使用例項?

我的部落格

方法/步驟

priority_queue: 合併果子

#include //有些OJ&版本不相容,需使用iostream&queueusing namespace std;int n,a,i,k,s;int main(){ priority_queue , greater >q;//定義小根堆 cin>>n; for(i=1;i<=n;i++){ cin>>a; q.push(a);//將a放入q } while(q.size()!=1){//如果q的元素大於1,繼續 k=q.top();//k賦為q的頂端元素 q.pop();//彈出q的頂端元素 k+=q.top(); q.pop(); s+=k;//將s加上頂端兩個的和 q.push(k);//k放回q } cout<

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

priority_queue常用的函式: top:讀入頂端元素 pop:刪除頂端元素 size:返回元素個數 push:加入一個元素 empty:如果為空,返回true

queue: 約瑟夫問題

#include using namespace std;int n,m,i,k;int main(){ queue q; cin>>n>>m; for(i=1;i<=n;i++) q.push(i);//將編號為i的定為i while(!q.empty()){//不為空繼續 for(i=1;i

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

至於佇列的常用函式,大概是: front:讀入隊頭 back:讀入隊尾 pop:刪除隊頭 empty、size、push:同priority_queue

相關問題答案