Time of Update: 2018-12-05
問題描述一個籠子裡面關了雞和兔子(雞有2 只腳,兔子有4 只腳,沒有例外)。已經知道了籠子裡面腳的總數a,問籠子裡面至少有多少只動物,至多有多少只動物輸入資料第1 行是測試資料的組數n,後面跟著n 行輸入。每組測試資料佔1 行,包括一個正整數a (a < 32768)。輸出要求n 行,每行輸出對應一個輸入。輸出是兩個正整數,第一個是最少的動物數,第二個是最多的動物數,兩個正整數用空格分開。如果沒有滿足要求的情況出現,則輸出2 個0。輸入範例2320輸出範例0 05
Time of Update: 2018-12-05
編譯技術領域重要國際會議列表(待補充)1. ASPLOSStands for: Architectural Support for Programming Languages and Operating Systems About The Symposium:ASPLOS is a multi-disciplinary conference for research that spans the boundaries of hardware, computer
Time of Update: 2018-12-05
演算法思想:任意時刻的中間結果都是一棵樹,每次花費最小的代價,用一條邊把不在樹中的結點加進來。【最小產生樹演算法執行個體】 現有一張城市地圖,圖中的頂點為城市,無向邊代表兩個城市間的連通關係,邊上的權代表公路造價。在分析了這張圖後發現,任一對城市都是連通的。現在要求用公路把所有城市聯絡起來,如何設計可使得工程的總造價最少?虛擬碼:程式碼範例:#include <iostream>using namespace std;const int MAXN = 101;const
Time of Update: 2018-12-05
問題描述一種細菌的繁殖速度是每天成倍增長。例如:第一天有 10個,第二天就變成 20個,第三天變成 40個,第四天變成 80個,……。現在給出第一天的日期和細菌數目,要你寫程式求出到某一天的時候,細菌的數目。輸入資料第一行有一個整數 n,表示測試資料的數目。其後 n行每行有 5個整數,整數之間用一個空格隔開。第一個數表示第一天的月份,第二個數表示第一天的日期,第三個數表示第一天細菌的數目,第四個數表示要求的那一天的月份,第五個數表示要求的那一天的日期。已知第一天和要求的一天在同一年並且該年不是閏
Time of Update: 2018-12-05
原題連結:http://acm.hust.edu.cn/thx/problem.php?id=1010 這道題理解起來不難,一般來說第一種解決方案就是暴力求解,但對於ACM題來說,暴力求解往往會得到TLE,也就是逾時。該題實際上在考察KMP演算法。KMP演算法的介紹詳見:http://baike.baidu.com/view/659777.htmKMP演算法是字串匹配的經典演算法,它通過給每個字串定義一個特有的特徵向量來逐個匹配字元,使得演算法的複雜度由一般的O(m*n)變成了O(m+n),大大
Time of Update: 2018-12-05
Dijkstra演算法是處理單源最短路徑的有效演算法,但它局限於邊的權值非負的情況,若圖中出現權值為負的邊,Dijkstra演算法就會失效,求出的最短路徑就可能是錯的。這時候,就需要使用其他的演算法來求解最短路徑,Bellman-Ford演算法就是其中最常用的一個。該演算法由美國數學家理查德•貝爾曼(Richard Bellman, 動態規劃的提出者)和小萊斯特•福特(Lester Ford)發明。適用條件&範圍:單源最短路徑(從源點s到其它所有頂點v);有向圖&無向圖(無向圖可
Time of Update: 2018-12-05
之所以將這段代碼再敲一次,因為這段代碼有幾點值得學習。1.對於鏈表,可以很方便的在表頭插入資料,但是如果保留一個尾節點,則可以很方便的尾部插入節點。2.不用專門定義一個指標來保留欲刪除節點的父節點,只需要在數數的時候少數一個即可。如代碼中:if( count == stride - 1)程式碼範例:#include <stdio.h>struct Monkey{int ID;Monkey *next;};int main(int argc, char*
Time of Update: 2018-12-05
一.參考書:《hadoop權威指南--第二版(中文)》二.hadoop環境安裝1.安裝sun-jdk1.6版本1)目前我只在一台伺服器(CentOS5.5)上搭建hadoop環境,因此先卸載已安裝的java1.4版本卸載命令:yum -y remove
Time of Update: 2018-12-05
原位地址:http://codetunnel.com/blog/post/what-is-a-mocking-framework-why-is-it-useful 今天我想講下關於mocking frameworks,並且解釋下他為什麼有用處。我將給你們展示用和不用mocking framework兩種測試方法。假設我們已經有了一個Driver類:public class Driver{ private IVehicle vehicleToDrive; public
Time of Update: 2018-12-05
下面程式的輸出結果是什嗎?為什嗎?#include <iostream>#include <vector>#include <set>using namespace std;struct node{char ch;int cost;node(){ch = '\0';cost = 0;}//把這個函數注釋了,對整個程式沒有任何影響bool operator == ( const node &rhs) const{return rhs.ch == ch;}
Time of Update: 2018-12-05
問題定義: 作用選取範圍問題就是要選擇出一個由相互相容的問題組成的最大子集合。活動編號:1 2 3 4 5 6 7 8 9 10 11 開始時間:1 3 0 5 3 5 6 8 8 2 12 完成時間:4 5 6 7 8 9 10 11 12
Time of Update: 2018-12-05
Unix提供了幾個作業環境變數的函數以及一個全域變數,全域變數儲存的是指向環境變數的指標,形如char **environ。使用environ變數需要在源檔案中進行外部聲明:extern char ** environ;相關函數:char *getenv(cosnt char *name); Returns:pointer to value associated with name , NULL if not foundint putenv(char *str);
Time of Update: 2018-12-05
問題描述:會下國際象棋的人都很清楚:皇后可以在橫、豎、斜線上不限步數地吃掉其他棋子。如何將 8個皇后放在棋盤上(有8 *
Time of Update: 2018-12-05
常用的矩陣函數:size(a)//求矩陣的大小fliplr(a)//矩陣左右翻轉flipud(a)//矩陣上下翻轉rot90(a)//逆時針旋轉90度diag(a)//產生對角矩陣或取出對角元素repmat(a,m,n)//eye(a)//產生a階方陣ones(a)//產生a階全1矩陣zeros(a)//產生a階全0矩陣inv(a)//求逆矩陣cat(k,a,b)//矩陣合并det(a)//行列式eig(a)//特徵值rank(a)//秩trace(a)//跡reshape rat//將A表示為
Time of Update: 2018-12-05
問題定義:一個數的序列bi,當b1 < b2 < ... < bS的時候,我們稱這個序列是上升的。對於給定的一個序列(a1, a2, ..., aN),我們可以得到一些上升的子序列(ai1, ai2, ..., aiK),這裡1 <= i1 < i2 < ... < iK <= N。比如,對於序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。這些子序列中最長的長度是4,比如子序列(1,
Time of Update: 2018-12-05
子串之最問題有以下幾類1.最大子串和2.最長上升子序列3.最長公用子串4.最長公用子序列5.最大重複子串6.最小覆蓋子串下面對這六類問題的最優解進行逐一分析解答。 ------------------------------------------------------------1.最大子串和(1)問題描述對於一個包含負值的數字串array[1...n],要找到他的一個子串array[i...j](0<=i<=j<=n),使得在array的所有子串中,array[i...j
Time of Update: 2018-12-05
Bellman-Ford演算法與另一個非常著名的Dijkstra演算法一樣,用於求解單源點最短路徑問題。Bellman-ford演算法除了可求解邊權均非負的問題外,還可以解決存在負權邊的問題(意義是什麼,好好思考),而Dijkstra演算法只能處理邊權非負的問題,因此 Bellman-Ford演算法的適用面要廣泛一些。但是,原始的Bellman-Ford演算法時間複雜度為 O(VE),比Dijkstra演算法的時間複雜度高,所以常常被眾多的大學演算法教科書所忽略,就連經典的《演算法導論》
Time of Update: 2018-12-05
The file mode, stored in the st_mode field of the file attributes,contains two kinds of information: the file type code, and the access permission bits. This section discusses only the type code, which you can use to tell whether the file is
Time of Update: 2018-12-05
抽象的意思是,抽取不同事物的共性而成的一種新事物。為什麼用事物一詞?因為抽象未必抽的是物,也可能是事。抽象是編程的重要思想之一,其主要目的是為了減少代碼重複,使其更易維護。抽象就是讓變化的事物得到一致的處理方式。抽象是如何應用的?我們怎麼去抽象?當我們面臨有共同特性的事物時,需要對它們統一處理,那麼就需要抽象。而這種共性的事物在實際項目中會經常碰到。而且在我們使用的各種架構中應用廣泛。比如說,使用者開啟不同的網頁,都需要去展現頁面,那麼所有的網頁都有一個共性就是展現,而不同的網頁又具有不同的行為
Time of Update: 2018-12-05
觀察者模式又叫發布訂閱模式,有訂閱者和發行者;發行者可以包含了多個訂閱者訂閱的事件,一旦發行者執行,會執行所有的訂閱者訂閱的事件。我覺得這麼講還是很迷糊。其實就是說“發行者”是一段上層代碼,他知道他所需要執行的過程中會發生一些事情,而這些事情具體邏輯自己又不知道,就算知道所有的邏輯,要用條件分支判斷執行,這總歸的是不好的,所以才有了這個模式。這是一個非常棒的模式。他使得發行者的代碼保持不變。而訂閱者的事件可以散步在他們自己的代碼中。我們實際應用中最常見的就是頁面中的按鈕點擊事件。當我們雙擊web