原创 [算法學習筆記]排序——插入排序

插入排序 插入排序是最簡單的一種排序方法,對於少量的數據排序是十分有效的。插入排序十分容易理解,平時玩撲克時,在理牌的過程中就是使用了插入排序的思想。 可以通過這張圖片來直觀的瞭解 下面是一張插入排序的動態圖。

原创 最長公共子序列LCS 動態規劃 HDU1159

題目鏈接:點我 首先了解一下什麼叫子序列:一個字符串的子序列,是指從該字符串中去掉任意多個字符後剩下的字符在不改變順序的情況下組成的新字符串 子序列和子串還是不一樣的,子串是要連續不斷的,而子序列不一定是要連續的。 圖示是這樣的:

原创 終端實現局部清屏效果 WindowsAPI

#include <iostream> #include <Windows.h> using namespace std; int main() { int n; cout << "請輸入倒計時時間:"; cin

原创 刪數問題--貪心算法+string類的一些應用

先上題目: Description 你有一個長度爲n的數字串, 現在要求你刪除其中k個數字, 使得剩下的數字在不改變原有順序的情況下,組成的數字最大. Input 每組數據包含一個數字串(1 <= n <= 1000),和一個整數

原创 走迷宮值路徑記錄

利用bfs走迷宮是最基礎的方法,記錄訪問過的每個點然後回溯最短路徑的點 首先把問題簡單化一下,只有牆壁和路,代碼比較簡單,只要會bfs基本上看得懂// 走迷宮記錄路徑 // 概述:有一個N*M大小的迷宮,其中'#'代表牆壁無法通過,'.'

原创 杭電1045 fire net dfs入門

題意是有n*n大小的地圖,地圖上點(.)代表空地,X代表防火牆,在地圖上放置碉堡,碉堡可以橫向或者豎向掃射,所以同一行或列上只能有一個碉堡,但是防火牆可以阻攔攻擊,求最大能放置多少碉堡 // HDOJ1042 fire net /

原创 田忌賽馬--貪心算法 HDU1052

題目鏈接:點我 田忌賽馬的故事大家都應該聽過吧。田忌和齊王賽馬,有優良差三種馬,每一種馬齊王都比田忌要好,所以齊王總是贏,田忌輸一次就要給齊王200銀幣,田忌輸的很慘於是去找孫臏幫忙。孫臏就讓他用最差的馬去和齊王最好的馬比,然後用優秀的

原创 實現二叉查找樹 -- C語言

本文章參考了《數據結構與算法分析——C語言描述》這本書。書中寫的還是挺透徹的 首先介紹一下二叉樹。什麼是二叉樹呢? 二叉樹(binary tree)是一棵樹,其每個節點最多能有兩個兒子。由於整個特性,實現二叉樹的方式是創建兩個指針分別指向

原创 HDOJ1241

題目鏈接:點我 題目的大意是問有多少個連通塊 如果@的上下左右和對角線相鄰的也是@,這兩塊就是相鄰的,也就是說它們是連通塊 #include <iostream> #include <cstring> using namespace s

原创 ACM基礎 BFS入門

註釋寫的很詳細哦 // 深度搜索利用隊列走迷宮,求最短步數 // 題目大意: 有一個N*M的迷宮,地圖上S代表起點,G代表終點,#代表牆無法通過,.代表路 // 求從起點到終點的最短距離,如果無法找到出口則輸出not find。 //

原创 優先隊列和堆 實戰:HDU1242

什麼叫優先隊列呢,能完成以下任務的就叫做優先隊列: ·插入一個數值 ·取出最小的數值(獲取數值,並且刪除) 實現優先隊列,應該使用二叉樹完成,是一種叫二叉堆的數據結構(binary heap) 二叉堆分爲兩種,最小堆和最大堆。最小堆是父節

原创 Krito的討伐(bfs加上優先隊列)

Description Krito終於幹掉了99層的boss,來到了第100層。第100層可以表示成一顆樹,這棵樹有n個節點(編號從0到n-1),樹上每一個節點可能有很多隻怪物。 Krito現在在0號節點,現在它想要區清除這一層所有的怪物

原创 字典序最小問題--貪心入門

// greedy 貪心算法 // 貪心算法是求當前最優解 // 題目:輸入一個整數,然後在輸入N長度的字符串,每次從字符串開頭或者末尾取一個字母, // 組成新的字符串,組成字符串的字典序最小 // 例:輸入:6 //

原创 二分圖的判斷 bfs+dfs兩種搜索方法判斷

二分圖的定義是:給定一個具有n個頂點的圖,要給每個頂點上色,並且使相鄰的頂點顏色不相同。是否能用最多兩種顏色進行染色? 首先我們用鄰接矩陣來模擬圖,使用bfs對整個圖遍歷一遍 #include <iostream> #include <

原创 01揹包問題 -- 經典動態規劃題

01揹包問題 問題描述:有n個重量和價值分別爲Wi,Vi的物品,從這些物品中挑選出總重量不超過W的物品,求怎麼挑選才能使價值最大; 首先可以使用搜索來看看,吧每件物品放入揹包試試,找出最優解。 // 01揹包問題 // 問題描述: /