Time of Update: 2018-12-04
計算常式,很簡單.遞迴地完成,就可以了.介面部分可能略複雜,但足夠簡便.是很好的實現方式.// matrixChainOrder.cpp -- 2011-06-12-10.27//Complete at 2011-06-14-00.27#include "stdafx.h"#include <iostream>#include "matrix.h"const int INFINITY = ~(1 << 31) ;int _tmain(int argc, _TCHAR*
Time of Update: 2018-12-04
呵呵.單獨開個文章,純屬廣告啊.不過,內容倒是貨真價實的.Node * Search (const Item min, const Item max) ;Node * IntervalTree :: m_Search (Node * pn) const{Node * pMinMin ; if (pn) { if (pn -> left && pn -> left -> maxOfAll >= m_min)
Time of Update: 2018-12-04
這星期跟置中糾纏不清~ 吼吼~問題:一個div的高度一定,其中的文字行數不確定,可能是一行也可能是多行,要求文字始終垂直置中在div中這個時候,line-height已經不能滿足要求了,找了很久,貌似只能用table類比了<div class="slideGridDes"><div><p>WEEKLY SPECIAL SALE!</p><p>2013 Voltage Toy
Time of Update: 2018-12-04
這個問題,4個月之前接觸過,當時實在實在是沒有搞出來.哪怕就是計算出最小的相乘次數都沒有.當時覺得,數學底子太薄了,很難糾結出來答案.這次呢,數學稍微補了一些,感覺應該解決這個問題了.關於列出遞迴式,是非常關鍵的,代碼都是圍繞這些來寫的.寫不出這個東西,理解不了這個東西,很難寫出來的.至於後來的列印順序,經過了一小翻周折,才搞定了.只是至於最後的實際運算,並沒有去做.留給以後去實現吧.
Time of Update: 2018-12-04
當一個DIV的position屬性為absolute時,它已經脫離了文檔流,margin: 0 auto;規則已經無效,不能讓它水平置中了,實現置中兩種方法:①當要置中的DIV寬度一定時可用:left: 50%; margin-left: -(DIV寬度)/2; 來解決;②當要置中的DIV的寬度不確定的情況下可用:left: 50%; (置中DIV的父DIV)left: -50%;
Time of Update: 2018-12-04
HOHO~~.話說好久沒有長時間地鑽研演算法問題了,這次鑽研了好幾道,寫出來了.感覺非常不錯.而且,網吧旁邊沒有人,想寫什麼就寫什麼,哈哈.
Time of Update: 2018-12-04
不想多說,關於這個.遺憾的是,沒能夠按照正序輸出選擇.只是算出了最小的代價.不著急,不久後會的.// fastWay.cpp -- 2011-06-07-16.19#include "stdafx.h"#include <iostream>const char STATION_ONE = '1' ;const char STATION_TWO = '2' ;int fastestWay (int * * costOfProcess, int * * costOfMovement,
Time of Update: 2018-12-04
動態規劃的備忘錄方法.這是我第一次使用備忘錄方法,說白了就是遞迴地調用,之後保留一個表,導致沒有重複的調用出現.很不錯.// memoizedLCSLenth.cpp -- 2011-06-18-02.57#include "stdafx.h"#include <iostream>#include <cstring>const int EMPTY = -1 ;void LCSLenth (const char * const strA, const char *
Time of Update: 2018-12-04
轉置鄰接表表示的無向、有向圖.沒有給出標頭檔,因為考慮到最近的標頭檔經常要append一些新東西,所以現在不給出來了. 實現的時候用了位操作的方法,目的是標記.避免了V^2的空間浪費.當然了,只能應對整型的資料了.其實對浮點型應該也是可以的,但是位操作就不是這樣的了.也是可以實現的. 代碼很簡單,貼出來.void GraphRepresentAsAdjacentMatrix ::transpose (void){if (m_currentSize < m_size){std
Time of Update: 2018-12-04
找到一個矩陣標記法的有向無權圖中的"匯",定義為,入度為|V| - 1,出度為0的頂點.這樣的頂點,一個圖中只能有一個.或者沒有.這個問題,是以前沒有接觸過的,覺得很有用,所以去寫了下. 起初寫的東西,很糟糕.我給帶出來了,起初的想法,孩子一樣純真.確實效率不高.而且浪費空間.答案給的實現,更多地利用了矩陣的特點.而且從問題的定義出發,邏輯也不難.很不錯. 而且,自覺地注釋自己寫得也不錯,都是最近<<代碼大全2>>帶給我的.非常感激大藍哥..
Time of Update: 2018-12-04
找出所有符合區間條件的結點,並返回這樣的結點的個數.很簡單,中序遍曆就可以了.int SearchAll (const Item min, const Item max) ;int IntervalTree :: m_SearchAll (const Node * const pn){static int count = 0 ;if (pn){if (pn -> left && m_min <= pn -> left ->
Time of Update: 2018-12-04
還是動態規劃.還是動態規劃.寫出來了,比較順手.// LCSLenth.cpp -- 2011-06-17-23.05#include "stdafx.h"#include <iostream>#include <cstring>enum {Direction_Left, Direction_Up, Direction_TopLeft} ;char * * LCSLenth (const char * const strA, const char * const
Time of Update: 2018-12-04
(min (m, n))空間求出最長公用子序列的長度.這個問題琢磨了好久,終於還是睾出來了. 實現的思想就是,從兩個串中選出一個較長的串.用另外一個串的所有,同較長串的當前值比較.只記錄最大的長度,最終完成. 說的,比較簡單.研究過程,還算一般.全下來大約4小時.是慢還是快?貌似很慢啊,希望自己今後養成高速解決問題的習慣吧. 還有啊,網吧是在是太吵了... // 15-4-4.cpp -- 2011-06-18-15.33// Completeed at 2011-06-19-10
Time of Update: 2018-12-04
這個是緊接著的下一道題.發現了,其實,隨著資料種類多起來,分塊也就多了,這也正是快速排序的來曆吧.還有呢,就是,隨著資料多起來,也就是會重複的情況下,也就會出現array[i] == array[j] == array[pivot]的時候,那樣我這段代碼的主迴圈也就無法運行了.於是,在median3 () 函數中先要將兩頭排好序, 以便在主迴圈中安全地使用首碼自增運算子. 這本書裡的練習題感覺不錯,只是演算法分析的題做著比較吃力,相信隨著數學的學習,情況會好起來吧! 貼上代碼,呵呵./*
Time of Update: 2018-12-04
就是數組中資料要麼是這個, 要麼是那個.不錯的思想,貌似簡單,其實不學不可能會. 我覺得寫遊戲的時候會派上用場.例如,兩個幫派群P,之後分組.你說呢?呵呵. /*7-31-11-26-22.22.c -- 第七章第三十一題*/#include <stdio.h>#define SIZE 21#define FALSE 0#define TRUE 2int main (void) ;void print_array (const int * const array, const
Time of Update: 2018-12-04
用顯示的棧實現插入,完成非遞迴的插入. 這網吧的破顯示器太爛了....自己小調了下,呵呵. 棧好久不寫了,冷不丁一寫,還真是遇到了問題.不過還好,現在搞清楚了. 好了,貼吧./*12-17-11-03-28-18.49.c -- 第十二章第十七題*/#include <stdio.h>#include <stdlib.h>#include "treapTree.h"TreapTree Insert_T (TreapTree tt, const Item
Time of Update: 2018-12-04
先是在 main () 函數中構造輸入.之後調用主常式解決問題.可以看到,主常式是相當精妙的.這當然是需要前面資料結構的正確./*MergeQueue.c -- O (NlogK) 時間將K個有序隊列合并為一個新有序隊列*/#include "Queue.h"#include "PriorityQueue.h"#define SIZE (5)int main (void) ;BOOL merge (const Queue * const array, const int number,
Time of Update: 2018-12-04
這個問題是,這樣的.N個正整數,找出其中兩個數的差中最小的非負差. 用到了一種資料結構,是從二叉樹擴張而來的.我給起了個名字,近親樹...呵呵. 說到底,這個問題,體現出來的就是,資料結構的擴張,利用資料結構,解決問題.真的很好. 嗯.不多說了,關鍵的部分在其餘的兩個檔案裡,這個是驅動常式檔案.// Ata14.3-6.cpp -- 2011-06-03-0.07#include "stdafx.h"#include "nearTree.h"#include <iostream&
Time of Update: 2018-12-04
using System;using System.Collections.Generic;using System.IO;using System.Text;namespace 原始碼修改{ // 將字串寫入文檔 public class WriteDocument : IOperateDocument { private StreamWriter writer; private Dictionary<int, string>
Time of Update: 2018-12-04
只用一個指標實現雙鏈表.這道題,我按照我的思路寫出來了.之前搜尋了下,沒有搜尋到關於這道題的答案,於是一改以往作風,直接用題號作了標題,希望能被搜尋到,呵呵. 每個結點,只儲存前後指標值的異或值.這樣的話,只要知道前後任何一個結點的地址,就可以獲得相反方向結點的地址,我用了一個全域變數來跟蹤上一個結點的地址.這樣,在執行完 Find_L () 之後,便可以實現向前或者向後的遍曆,這樣一來,是可以實現雙向鏈表應有的功能的.