一本通1332、1334:普通隊列

這次我們講普通的隊列問題,不是BFS。

題目:1332、1334

所以我選了1332、1334兩道例題,先做解題報告。

由于時間原因,我先放個代碼,思路晚點補。

1332:直接模擬,也可以用循環(huán)隊列做。

#include <bits/stdc++.h>

using namespace std;

int n,m,k;

int main()

{

? queue<int> q1,q2;

? cin>>n>>m;

? for(int i=1; i<=n; i++) q1.push(i);

? for(int i=1; i<=m; i++) q2.push(i);

? cin>>k;

? while(k--)

? {//每組兩人

? ? cout<<q1.front()<<" "<<q2.front()<<endl;//輸出計劃

? ? q1.push(q1.front());

? ? q2.push(q2.front());//回到隊尾

? ? q1.pop();

? ? q2.pop();//同時出隊

? }//模擬算法,加上“循環(huán)隊列”思想(其實stl的普通隊列的空間跟數(shù)組循環(huán)隊列一樣)

? return 0;

}

總結(jié)一下,模擬算法,其實很簡單,熟練用了queue,就可以了。

循環(huán)隊列,參見“特殊隊列2”,這里就不提了。


1334:也是模擬,其實隊列就兩大類題:模擬和BFS(寬搜)

#include <bits/stdc++.h>

using namespace std;

queue<int> q;//定義隊列

int n,m,tot;

int main()

{

? cin>>n>>m;

? for(int i=1; i<=n; i++) q.push(i);//入隊

? tot=1;

? while(!q.empty())

? {

? ? if(tot%m==0)//如果到了出隊人數(shù)

? ? {

? ? ? cout<<q.front()<<" ";//輸出

? ? ? q.pop();//出隊

? ? }

? ? else

? ? {

? ? ? q.push(q.front());

? ? ? q.pop();

? ? ? //循環(huán)隊列思想,每完成一人,把這人放到隊尾

? ? ? //可以參考1332代碼,幾乎一樣的手法

? ? }

? ? tot++;//計數(shù)

? }

? cout<<endl;//這個回車可有可無

? return 0;

}

總結(jié),模擬類,多按題目順序來就行了,一般會用的人,不會錯。反是高深算法要當心。


我發(fā)現(xiàn)呵,似乎大家更愛看知識型的,不愛解題報告,但是解題報告往往是抄代碼必備神器。

所以嘛,我會多在解題報告中加上干活型內(nèi)容。

這次隊列題,最大感觸是:循環(huán)隊列思想真夠不錯的。其實循環(huán)隊列,完全不必要數(shù)組,過了n,變成1,就把頭的一扔,尾巴一推,就達成循環(huán)隊列了。

那么這次就到這里,時間不夠,簡單一些,望體諒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 星期天小哼和小哈約在一起玩桌游,他們正在玩一個非常古怪的撲克游戲——“小貓釣魚”。游戲的規(guī)則是這樣的:將一副撲克牌...
    青蔥烈馬閱讀 1,649評論 0 0
  • 循環(huán)隊列 #include #include #defineFALSE0 #defineTRUE1 typedef...
    百合_b06b閱讀 680評論 0 0
  • /***************利用數(shù)組模擬循環(huán)隊列***************/ #include "stdi...
    HanMeng閱讀 870評論 0 0
  • 貪心算法 貪心算法總是作出在當前看來最好的選擇。也就是說貪心算法并不從整體最優(yōu)考慮,它所作出的選擇只是在某種意義上...
    fredal閱讀 9,424評論 3 52
  • 薏米和大米各一半來做飯,厚膩的舌苔兩、三個星期就能消除。 ? 養(yǎng)胃粥:蓮子肉、山藥、薏米和芡實按照等量配比打磨成粉...
    廠廠九九閱讀 93評論 0 1

友情鏈接更多精彩內(nèi)容