Time of Update: 2018-12-05
問題描述:所謂子序列,就是在原序列裡刪掉若干個元素後剩下的序列,以字串"abcdefg"為例子,去掉bde得到子序列"acfg"現在的問題是,給你一個數字序列,你要求出它最長的單調遞增子序列。輸入:多組測試資料,每組測試資料第一行是n(1<=n<=10000),下一行是n個比1e9小的非負整數輸出:對於每組測試資料輸出一行,每行內容是最長的單調遞增子序列的長度範例輸入:51 2 4 8 1651 10 4 9 790 0 0 1 1 1 5 5 5範例輸出:533 [分析]
Time of Update: 2018-12-05
多次背包 多次背包問題:給定 n 種物品和一個背包。第 i 種物品 的價值是 Wi ,其體積為 Vi,數量是 Ki件,背包的容量為 C。可以任意選擇裝入背包中的物品,求裝入背包中物品的最大總價值。 方法一:可以把此物品拆分成Ki個只能用一次的物品,直接套用 0-1 背包問題的經典動規實現,但是效率太低了,需要尋找更高效的演算法。此演算法時間複雜度為O(C*∑(Ki)) 方法二:拆分成體積和價值分別為原來1, 2 , 4.. 2^m, Ki-2^m 倍的幾個物品,用0-1背包求解。
Time of Update: 2018-12-05
利用驅動分層技術,可以將多個驅動程式串連在一起,通過這種方式,開發人員能夠修改現有驅動程式的行為,無需重新編寫整個驅動程式。幾乎所有的硬體裝置都存在著驅動程式鏈。最底層驅動程式處理對匯流排和硬體裝置的直接存取,更高層的驅動程式處理資料格式化,錯誤碼以及高層請求轉化為更細小更有針對性的硬體操作細節。分層機制是rootkit的一個重要概念,因為在資料出入更底層硬體的移動過程中涉及分層的驅動程式,層次驅動程式不僅可以截獲資料,也可以在傳遞資料之前對其進行修改。下面介紹一個鍵盤嗅探器,分層鍵盤嗅探器的運
Time of Update: 2018-12-05
Musical ThemeTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 6021 Accepted: 2127DescriptionA musical melody is represented as a sequence of N (1<=N<=20000)notes that are integers in the range 1..88, each representing a key on the
Time of Update: 2018-12-05
對於學習核心(驅動)編程的同學們,“楚狂人”一定不會陌生,因為能從網上能下到入門的核心教程只有它了。作為一個門外漢,咱無權評論人家書寫的好壞,但作為一個初學者,一個圖書的購買者(《天書夜讀》真正的書,不是電子書),我還是要說幾句的:作為一個初學者,從簡單程式的執行個體學起是非常有協助的,但是《天書夜讀》中的樣本十有八九存在錯誤,作為圖書的作者,難道不應該把所有的樣本程式上機執行過了才出版嗎?還有就是圖書一共270頁,不多不少吧,但仔細觀察發現每頁的字怎麼這麼大呢?我想如果按正常的IT書的寫法,
Time of Update: 2018-12-05
當使用windbg時,最常用的命令就是'K', 棧回溯。那麼是怎麼實現棧回溯的呢,下面簡單介紹一下。首先要瞭解我們所編譯出來的EXE或者DLL的調試資訊都是包含在PDB檔案中的,PDB檔案可由編譯器來產生。在棧回溯中使用的API都是來自動態庫DbgHelp.dll中的,當然你可以顯式或者隱式的調用這個DLL,但是這個DLL有著不同的版本,當隱式調用時需要注意。因為我在使用時出現了問題,所以我這裡詳細介紹一下。當我直接把DbgHelp.dll,
Time of Update: 2018-12-05
在求職過程中,求職者必須採用多種專業的技巧。你要像科研人員似地分析就業市場;像暢銷作家似地精心編撰簡曆;像老練的政客似地建立工作關係。 在討論薪酬的關鍵時刻,還有一種職業要模仿──聯邦調查局(FBI)的人質談判專家。 想象一下坐在你對面的人事經理是一名在銀行金庫裡劫持了十名人質的瘋子,只不過他不是要幾百萬現金和一架私人飛機,而是把守著包含工資預算的電子製表軟體。聯邦調查局公布的文章“危機調停:在談判中運用傾聽技巧”,概述了在談判中有效地帶來積極成果的幾項手法,其中有一條是:適當跟進,改述、
Time of Update: 2018-12-05
直接核心對象操作(DirectKernel Object Manipulation, DKOM),通過直接核心對象操作可以在不安裝鉤子的情況下隱藏進程和驅動程式。在更改核心對象之前需要明確以下問題:1. 需要明確所要修改的對象是怎樣的,包括結構的成員是什麼2. 需要深入理解如何使用對象3. 要考慮不同作業系統的版本以及同一版本不同服務補丁之間的差異4. 注意如何使用對象,因為特定記憶體地區和特定函數在不同的插斷要求層級(Interrupt Request
Time of Update: 2018-12-05
給定n個數求這n個數劃分成互不相交的m段的最大m子段和。 經典的動態規劃最佳化的問題。設f(i, j)表示前i個數劃分成j段,且包括第i個數的最大m子段和,那麼有dp方程: f(i, j) = max { f(i - 1, j) + v[i], max {f(k, j - 1) + v[i]}(k = j - 1 ... i - 1) } 也就是說第i個數要麼自己划到第j段,要麼和前一個數一起划到第j段裡面,轉移是O(n)的,總複雜度O(n * n *
Time of Update: 2018-12-05
直接暴力:#include<cstdlib>#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<set>#include<map>#include<list>#include<queue>#include<vector>#defin
Time of Update: 2018-12-05
http://www.cnblogs.com/kuangbin/archive/2013/07/30/3225627.html題意:給出一個n和1到n的某個排列,詢問q次,每次詢問[l,r]區間內任意挑兩個數,最大公約數的最大值是多少。#include<cstdio>#include<iostream>#include<cstdlib>#include<algorithm>#include<cmath>#include<strin
Time of Update: 2018-12-05
由於OpenBSD官方未提供ISO,所以很多網友除了下載別人做的ISO外,只能自己定製。雖然麻煩了點,但定製ISO可以讓你真正領略到OpenBSD的“小即是美”的強大魅力,這點上OpenBSD倒把我們興趣給提起來了,害得我花了好久研究怎麼徹底做個適合自己使用的ISO,呵呵。 OpenBSD
Time of Update: 2018-12-05
AND_CATCHAND_CATCH AND_CATCH(exception_class,exception _object_point_name)
Time of Update: 2018-12-05
VC++ 6.0支援Unicode編程,但預設的是ANSI,所以開發人員只需要稍微改變一下編寫代碼的習慣便可以輕鬆編寫支援UNICODE的應用程式。使用VC++
Time of Update: 2018-12-05
第一部分介紹了基本的鉤住磁碟機,下面介紹使用調度常式來完成檔案過濾。以下是標準的調度常式:NTSTATUS OurFilterDispatch ( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp){ PIO_STACK_LOCATION currentIrpStack; … currentIrpStack = IoGetCurrentIrpStackLocation ( Irp); …
Time of Update: 2018-12-05
CALL指令是x86CPU中專門用作函數調用的指令,它的作用就是將當前的程式指標(EIP寄存器)值儲存到棧中(稱為linking information),然後轉移到(branch to)目標運算元所指定的函數(被調用過程)繼續執行。 根據被調用過程是否位於同一個程式碼片段,CALL調用被分為近調用(Near Call)和遠調用(Far Call)兩種。在近調用中CPU的操作如下:A. 將EIP寄存器的當前值壓入到棧中供返回時使用B.
Time of Update: 2018-12-05
編譯器的兩個工作,一是基本的編譯功能,一個是檢查並報告被編譯軟體中的錯誤。先看程式的構建過程:
Time of Update: 2018-12-05
這幾天看了2-SAT有關的論文,也做了一些相關的題目,個人的一點體會。所謂的2-SAT就是給出一對矛盾,既他們是不可能相處在一起的,比如有家庭A,B。A家庭有a0,a1兩個人,B家庭有b0,b1兩個人,現在要求每個家庭出席一個人組成一個集合,要是沒有任何約束條件,我們可以有4種選擇滿足條件,即(a0,b0) (a0,b1),(a1,b0),(a1,b1)。但是我們要是給出一個約束條件 比如說a1與b1不能同時出席,即是相當於不能相容的一隊,有此,我們可供選擇的就減少了,減少了雖然是(a1,b1)
Time of Update: 2018-12-05
From http://forum.eet-cn.com這篇文章,是從我的《高效開發人員的五個特徵》一文中抽出的一個觀點。從我自身的事業和習慣中,我考慮了很多方式怎麼樣才能有效地學習。 1.
Time of Update: 2018-12-05
在學習UML過程中,你經常會遇到UML類圖關係,這裡就向大家介紹一下UML箭頭、線條代表的意義,相信通過本文的介紹你對UML中箭頭、線條的意義有更明確的認識。AD:本節向大家學習一下UML箭頭、線條代表的意義,UML中關係主要有依賴,彙總,合成,泛化和實現等,下面就讓我們來看一下這些關係如何用UML箭頭和線條來實現。UML箭頭、線條程式關係後面的例子將針對某個具體目的來獨立地展示各種關係。雖然文法無誤,但這些例子可進一步精鍊,在它們的有效範圍內包括更多的語義。依賴(Dependency)實體之間