題目本身不難,就是字串處理有點繁瑣。
但是有個巨坑!就是你必須得邊push邊造堆,不能一次性讀完再造堆,兩者造出來的順序是不一樣的!為此改了十多遍(累覺不愛)
這裡用了stl的make_heap,自己手寫也可以,不怎麼長。
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
vector
heap;
int find(int a)
int main()
getchar();
while (m--)
else
if (q[q.length() - 1] == 's')
else
}else
else
}else
if (temp[0] == 'a')
else}}
}return
0;}
pat L2 012 關於堆的判斷(堆 輸入格式)
l2 012 關於堆的判斷 思路 就是建立乙個堆,然後找是否滿足4個條件就好了。觀察可知,這四個條件都是對座標關係的判斷,接下來我用pos x 表示x在堆中的位置。1 x是根節點 如果pos x 1 2 x和y是兄弟節點 pos x 2 pos y 2 3 x是y的父節點 pos x pos y 2...
L2 012 關於堆的判斷
題目如下 時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 將一系列給定數字順序插入乙個初始為空的小頂堆h。隨後判斷一系列相關命題是否為真。命題分下列幾種 輸入格式 每組測試第1行包含2個正整數n 1000 和m 20 分別是插入元...
L2 012 關於堆的判斷
題目 1.按題目要求先將傳進來的數按順序插入,每插入乙個新的元素就要從下向上調整,邊插入邊調整,不能全部插入後再從上到下調整。2.得到調整好的堆後,對輸入的指令字串進行分析,取出其中的數字,並判斷是題目所給的四類命題的哪一類 在這裡我採用按空格分幾個部分輸入字串的形式獲取字串中的數字 例如輸入 24...