原创 簡單的數據結構 (deque的應用)

慄醬有一天在網上衝浪的時候發現了一道很有意思的數據結構題。 該數據結構形如長條形。 一開始該容器爲空,有以下七種操作。 1 a從前面插入元素a 2 從前面刪除一個元素 3 a從後面插入一個元素 4 從後面刪除一個元素 5 將整個容

原创 小C的記事本

小C最近學會了java小程序的開發,他很開心,於是想做一個簡單的記事本程序練練手。 他希望他的記事本包含以下功能: 1、append(str),向記事本插入字符串 str(英文字符) 2、delete(k),刪除記事本最後k個字符

原创 計數排序 的全網最詳細的講解

假設有這樣子一個題:數組裏有20個隨機數,取值範圍爲從0到10,要求用最快的速度把這20個整數從小到大進行排序。 你可能第一時間想到的是快速排序,因爲快排的時間複雜度是O(nlogn)。但是由於計數排序是基於桶排序然後由下表來確定

原创 A*算法詳細講解以及實現

A*簡介 A算法是啓發式算法重要的一種,主要是用於在兩點之間選擇一個最優路徑,而A的實現也是通過一個估值函數 F=G+H G表示該點到起始點位所需要的代價 H表示該點到終點的曼哈頓距離。 F就是G和H的總和,而最優路徑也就是選擇

原创 [HNOI2003]激光炸彈 (二維前綴和)

題目描述 一種新型的激光炸彈,可以摧毀一個邊長爲R的正方形內的所有的目標。 現在地圖上有n(N ≤ 10000)個目標,用整數Xi,Yi(其值在[0,5000])表示目標在地圖上的位置,每個目標都有一個價值。 激光炸彈的投放是通過

原创 AtCoder Beginner Contest 168 C

昨晚做這個時鐘的題,真的是,做的我吐了,忘了考慮幾小時幾分鐘的時候,不是對應在整數點的,而是有偏差的 #include <iostream> // cout, endl, cin #include <string>

原创 鏈表(實現插入一個數)

在存儲一大波數時,使用數組顯得不夠靈活,如在排好序的一個序列中插入一個數,使用數組來實現時,需要把插入位置後面的所有數都後移。 這樣的操作很浪費時間,但是用鏈表的話,只需要修改插入位置的指針即可。 代碼實現如下: #include

原创 最常用的排序 ---快速排序

相對於桶排序,節省了空間,相對於冒泡排序,節省了時間,可謂是兩者兼顧的一種更優化的算法 實現:假設有 初始序列"6 1 2 7 9 3 4 5 10 8"。那麼從初始序列的兩端開始探測。先從右往左找到一個比6小的數,然後在從左往右

原创 解密 QQ 號---隊列

阿黃最近喜歡上一個美女,向美女要聯繫方式,但是美女當然不會直接告訴他,她給阿黃出了一個考驗智商的題。規則是這樣的:首先將第一個數刪除,緊接着將第二個數放進這串數的末尾,再將第三個數刪除並將第四個放進這串數的末尾,…,如此知道剩下最

原创 模擬戰役(DFS||並查集解法)

題目描述 齊齊和司機在玩單機遊戲《紅色警戒IV》,現在他們的遊戲地圖被劃分成一個nm的方格地圖。齊齊的基地在最上方的4行格內,司機的基地在最下方的4行格內。他們只有一種攻擊方式:遠程大炮,相關屬性如下: 1、 大炮可以打到地

原创 武漢工程大學2020GPLT選拔賽(重現賽)詳細代碼講解

題目----傳送門 A L1-1 I LOVE WIT 思路:字符串多行打印操作 #include<bits/stdc++.h> using namespace std; int main(){ printf

原创 NHWQRXWlOJ

博客搬家

原创 題目 2229: [藍橋杯][算法訓練]最大最小公倍數

思路:這個題的意思就是要我們在1~N的範圍內找三個數,使他們的最小公倍數在這個範圍內的組合是最大的。那麼你的第一印象是什麼的?我的第一印象是找三個兩兩互質的數,這樣只需要相乘即可,就沒有需要約分的地方。 接下來先說一個結論:大於1

原创 用鄰接鏈表存圖 詳講

在許多圖論的題目中,我們首先要存圖,之前我已經學習了用鄰接矩陣存圖 ,但是看許多大佬都是用鄰接表存圖,覺得還是學習下好! 那麼我們經過一個例題來學習 鄰接鏈表存圖。 有N個點,從 1 到 N 。有M 條邊 ,每條用連接的2 個頂點

原创 strstr函數的詳細講解

定義:strstr(str1,str2) 函數用於判斷字符串str2是否是str1的子串。如果是,則該函數返回str2在str1中首次出現的地址;否則,返回NULL。 比如: char str2 = “cdef”; char