原创 對 複數集合 一題代碼的講解

#include <iostream> #include <string> #include <cmath> #include <algorithm> #include <queue> #include <stdio.h> using n

原创 貪心策略之Dijkstra算法

Dijkstra算法是解決有向帶權圖中最短路徑的算法。我用自己的語言解釋Dijkstra算法的過程:1.首先有一個有向帶權圖G=(V,E),V爲頂點集合,E爲邊集合,用鄰接矩陣map[n][n]來儲存。    確定一個起始點origin,

原创 遍歷鏈表

題目描述建立一個升序鏈表並遍歷輸出。輸入描述:輸入的每個案例中第一行包括1個整數:n(1<=n<=1000),接下來的一行包括n個整數。輸出描述:可能有多組測試數據,對於每組數據, 將n個整數建立升序鏈表,之後遍歷鏈表並輸出。示例1輸入4

原创 二叉排序樹

題目描述輸入一系列整數,建立二叉排序數,並進行前序,中序,後序遍歷。輸入描述:輸入第一行包括一個整數n(1<=n<=100)。 接下來的一行包括n個整數。輸出描述:可能有多組測試數據,對於每組數據,將題目所給數據建立一個二叉排序樹,並對二

原创 找位置

題目描述對給定的一個字符串,找出有重複的字符,並給出其位置,如:abcaaAB12ab12 輸出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。輸入描述:輸入包括一個由字母和數字組成的字符串,其

原创 歸併排序

歸併排序是一種分治策略。將一串序列從中間分開,分爲low-mid,mid+1-high兩部分子序列。這是分解。將子序列排序,並把排序後子序列重新複製給原數組。這是合併。對子序列不斷遞歸調用,直到子序列個數爲1。數量爲1不再排序,直接將該數

原创 哈夫曼樹

題目描述哈夫曼樹,第一行輸入一個數n,表示葉結點的個數。需要用這些葉結點生成哈夫曼樹,根據哈夫曼樹的概念,這些結點有權值,即weight,題目需要輸出所有結點的值與權值的乘積之和。輸入描述:輸入有多組數據。 每組第一行輸入一個數n,接着輸

原创 階乘

輸入n, 求y1=1!+3!+...m!(m是小於等於n的最大奇數) y2=2!+4!+...p!(p是小於等於n的最大偶數)。輸入描述:每組輸入包括1個整數:n輸出描述:可能有多組測試數據,對於每組數據, 輸出題目要求的y1和y2示例1

原创 矩陣的冪

題目描述給定一個n*n的矩陣,求該矩陣的k次冪,即P^k。輸入描述: 第一行:兩個整數n(2<=n<=10)、k(1<=k<=5),兩個數字之間用一個空格隔開,含義如上所示。 接下來有n行,每行n個正整數,其中,第i行第j個整數表示矩陣

原创 奇偶校驗

題目描述輸入一個字符串,然後對每個字符進行奇校驗,最後輸出校驗後的二進制數(如'3’,輸出:10110011)。輸入描述:輸入包括一個字符串,字符串長度不超過100。輸出描述:可能有多組測試數據,對於每組數據, 對於字符串中的每一個字符,

原创 管理系統的源碼

基本思路如下:1.成員基類Person,學生類Students與教師類Teacher繼承Person;2.操作基類OperationPage,添加、刪除、修改、查詢類 繼承自OperationPage;3.主函數裏初始化數據庫信息,實例化

原创 整數,字符,字符串間的轉換

#include <iostream> #include <string> #include <sstream> #include <cmath> using namespace std; int main() { int i

原创 連接數據庫的程序:一個小型的管理系統

一、涉及到的知識點如下:1.連接數據庫,利用SqlQuery與SqlTableModel對數據庫進行操作;2.設置窗口背景圖片,窗口標題,窗口Icon等;二、基本實現思路:1.成員基類Person,學生類Students與教師類Teach

原创 bellman-ford算法

bellman-ford算法是用於解決單源最短路徑的算法,與Dijkstra不同的是,它可解決存在負權邊的的情況。同時,它也可以檢測是否存在存在負權值環。其基本思路如下:建立一個距離數組dis[],將源點設爲0,其餘點的距離初始化爲無窮大

原创 快速排序

快速排序思想如下:將一串序列中某一項作爲基礎pivot,將小於pivot的元素移到pivot的左側,將大於pivot的元素移到右則,這樣就得到了以pivot的基準的兩串子序列,對子序列也做如此排序。這裏也是用到了分治的策略,先分解再合併。