click go!!!
輸入n,代表將會把1~n 隨意的壓入棧中,add代表入棧乙個數,remove代表出棧乙個數,嚴格按照1,2,3,4。。。。的順序出棧。如果不能按順序則需要一次排序,問需要排序多少次?
思路: 當我們經過一次排序後,其實後面的數都為有序的,並不影響後面的。也就是說後面是否需要排序不受已經排序過的數影響。1.判斷是否棧空,若為空代表:在已將排好序的基礎上出棧——直接下一次輸入要點: 每次排序後直接清空棧
2. 若不空,且棧頂等於當前需要的出棧的數,則直接下一次輸入
3. 若不空,且棧頂不等於當前需要的出棧的數,說明需要排序,並清棧
input:
7add 3
add 2
add 1
remove
add 4
remove
remove
remove
add 6
add 7
add 5
remove
remove
remove
output:
2
#include
using
namespace std;
char s[10]
;int
main()
else
else}}
}printf
("%d\n"
,ans)
;return0;
}
思維題合集
三個陣列,每個都是1到n的排列,定義為good pair,當且僅當,在三個陣列中,i和j的相對關係一樣。給出三個陣列,求good pair的數目。sample input sample output 42 3 1 4 2 1 4 3 2 4 3 1 3先考慮兩兩陣列,可以通過以一組為基準 rank,...
戰爭 思維題
內部題不放了 樣例輸入2 512 34 45 5105 10 15 43 20 5樣例輸出possible 4 100 impossibleps 感謝yxy給我講明白了這道題 太久沒水題解了來水乙個 早知道這篇題解這麼難寫就不寫了 include include include include de...
面試中的思維題
先記錄所有問題,最後給出所有答案 csdn右側有目錄欄,可以快捷瀏覽 桌子上有 23 枚一模一樣的硬幣,光用手摸,摸不出正反面。現在有 10 枚硬幣正面朝上,13 枚反面朝上,怎麼做可以蒙著眼把這 23 枚硬幣分成兩堆,這兩堆中正面朝上的硬幣個數一樣多?一根木棍,隨機折成三段,這三段能組成乙個三角形...