AC日記 手寫堆ac合併果子(傻子)

2022-05-14 18:39:49 字數 985 閱讀 1878

今天整理最近的考試題

發現乙個東西叫做優先佇列

priority_queue(說白了就是大根堆)

但是我對堆的了解還是很少的

所以我決定手寫乙個堆

於是我寫了乙個簡單的堆

手寫的堆說白了就是個二叉樹

能不更新維護的二叉樹,每次維護的時間為logn

但是各種查詢(empty,top什麼的)時間為1;

感覺這個堆還寫的像模像樣

於是興沖沖的去ac特別簡單題合併果子

沒a;改了好久才ac

現在貼一下這個**

來,上**:

#includeusing

namespace

std;

int heap[200000],num,jkl,cur,n,ans=0

;char

ch;void swap(int &a,int &b)//

交換函式

void qread(int &x)//

讀入優化

while(ch>='

0'&&ch<='9')

x*=jkl;

}void heap_up(int now)//

向上維護(新增元素時)

}void heap_push(int kol)//

新增元素同時維護

void heap_down(int now)//

向下維護(刪除元素時)

else

}else}}

else

}}void heap_pop()//

刪除元素

int heap_top()//

查詢堆頂元素

bool heap_empty()//

查詢是否為空

intmain()

for(int i=1;i)

printf(

"%d\n

",ans);

return0;

}

AC日記 單詞翻轉 1 7 27

總時間限制 1000ms 記憶體限制 65536kb 描述輸入乙個句子 一行 將句子中的每乙個單詞翻轉後輸出。輸入只有一行,為乙個字串,不超過500個字元。單詞之間以空格隔開。輸出翻轉每乙個單詞後的字串,單詞之間的空格需與原文一致。樣例輸入 hello world樣例輸出 olleh dlrow 思...

AC日記 單詞替換 1 7 21

總時間限制 1000ms 記憶體限制 65536kb 描述輸入乙個字串,以回車結束 字串長度 100 該字串由若干個單詞組成,單詞之間用乙個空格隔開,所有單詞區分大小寫。現需要將其中的某個單詞替換成另乙個單詞,並輸出替換之後的字串。輸入輸入包括3行,第1行是包含多個單詞的字串 s 第2行是待替換的單...

AC日記 猴子 cogs 2043

輸入檔案 monkeya.in輸出檔案 monkeya.out簡單對比 時間限制 1 s 記憶體限制 256 mb 有n只猴子,第一只尾巴掛在樹上,剩下的n 1只,要麼被其他的猴子抓住,要麼抓住了其他的猴子,要麼兩者均有。當然乙隻猴子最多抓兩隻另外的猴子,因為只有兩隻猴爪子嘛。現在給出這n只猴子抓與...