Time of Update: 2018-08-17
什麼是DAG圖中的關鍵路徑。簡單的將就是不可以推辭的活動組成的路徑,這對於工程上有著極其重要的應用,利用關鍵路徑演算法可以計算那些事件是不可推辭的,必須如期完成,下面是代碼: //關鍵路徑演算法//圖的鄰接矩陣標記法#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stack>#include <queue>using namespace
Time of Update: 2018-08-17
混幣交易(coinjoin),說白了就是幾個互不相干的人,把互不相干的交易放到一個交易中,那麼在外人看來,就不知道到底哪一個input對應了哪一個output,從而無法準確知道誰花錢幹了什麼。 混幣交易的目的: 通過查詢區塊鏈,你的交易對手(之前付過錢給你)掌握了你的比特幣地址,可以看到你把這些錢花在什麼地方,花了多少,還剩多少,甚至可以分析出你其他的比特幣地址。 所以,
Time of Update: 2018-08-17
在編譯器中,經過詞法分析和文法初步分析,會產生文法樹,在進一步對文法樹的處理中,會用到一個叫做“有向非循環圖”的資料結構。 何為有向非循環圖 1,首先它是一個圖,然後它是一個有向圖,其次這個有向圖的任意一個頂點出發都沒有回到這個頂點的路徑,是為有向無環 2,DAG不一定能轉化為樹,但是樹一定是一個DAG, 3,DAG可以執行拓撲排序,關於拓撲排序的的相關內容,參考另一篇blog:http://blog.csdn.net/yejing_utopia/article/details/
Time of Update: 2018-08-17
http://www.cnblogs.com/justPassBy/p/5369930.html http://www.cnblogs.com/ka200812/archive/2011/07/31/2122641.html 定理: 柯尼希定理:二分圖最小點覆蓋的點數=最大匹配數。 最小路徑覆蓋的邊數=頂點數n-最大匹配數 最大獨立集=最小路徑覆蓋=頂點數n-最大匹配數
Time of Update: 2018-08-17
我認為Ambari最有趣的地方之一是如何計算DAG(Directed acyclic graph,有向非循環圖) 簡述 先簡要概括一下Ambari是如何確定執行流程的: ambari server會根據叢集的中繼資料資訊,在執行某一個Operation時候建立一個Stage DAG,根據這個DAG,劃分不同的Stage,Stage間有執行循序關聯性,必須按著順序來;再根據每一個Stage,產生Command的DAG,將Command下發給ambari
Time of Update: 2018-08-17
建樹是OIer們經常乾的事情。但其中的方法很有講究:又要省空間,又要便於訪問。在此介紹一種本人認為比較好的方法: 1、把每個點與其所有相鄰的點串連,構造出一棵無根樹; 2、任選一個點作為根,然後確定點之間的層次關係。 vector<int >tree[maxn + 5], v[maxn + 5]; //tree表示樹中的邊,v表示對應位置的邊的權值int fat[maxn + 5];
Time of Update: 2018-08-17
容斥原理大家都比較熟悉了,它是用來求一大串給定的可能有交集的集合的並集。其公式如下: |A 1 ∪A 2 ∪A 3 ∪···∪A m | = 記得第一次接觸到這個公式,就卡在了實現上面。後來,在網上看到了一種方法,個人認為很好,在此給大家分享一下。 步驟如下:
Time of Update: 2018-08-17
我們首先給出一個迷宮,它的規格是5 * 5,在這裡我使用int的二維數組表示迷宮,其中1表示障礙,0表示可以通行的道路,要求從(0,0)座標走到(4, 4)座標,並輸出走過的座標路徑。 int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,}; ①使用棧來實現DFS(深度優先搜尋) 首先,我們給出棧在迷宮中的的結構定義。
Time of Update: 2018-08-17
題目描述 輸入 第1行:二叉樹的前序走訪順序第2行:中序遍曆順序 輸出 二叉樹的後序遍曆順序 範例輸入 Copy (如果複製到控制台無換行,可以先粘貼到文字編輯器,再複製) ABCDEFGH CBEDAGHF 範例輸出 CEDBHGFA -------------------------------------------------------------------------------------
Time of Update: 2018-08-17
算力修複對比 修複前 修複後 一、準備工作1、DAG修複版RX polaris核心第三方測試版驅動 : http://pan.baidu.com/s/1pLbtzqb2、ATIKMDAG-PATCHER補丁簽名 : http://pan.baidu.com/s/1eSvOvjs
Time of Update: 2018-08-17
/*思路:數字中有一個數組出現的次數超過數組長度的一半,也就是說它出現的次數比其他所有數字出現次數的和還要多。因此我們可以考慮在遍曆數組的時候儲存兩個值:一個是數組中的一個數字,一個是次數。當我們遍曆到下一個數位時候,如果下一個數字和我們之前儲存的數字相同,則次數加1如果下一個數字和之前儲存的數字不用,則次數減1.如果次數為0,我們需要儲存下一個數字,並把次數設為1.由於我們要找的數字出現的次數比其他所有數字出現的次數之和還要多,那麼要找的數字肯定是最後一次把數字設為1時對應的數字*/class
Time of Update: 2018-08-17
【問題描述】 有N個士兵,編號依次為1,2,3,…,N, 隊列訓練時,指揮官要把一些士兵從高到矮依次排成一行。但現在指揮官不能直接獲得每個人的身高資訊,只能獲得“p1比p2高”這樣的比較結果:記為p1>p2。例如1>2,2>4,3>4。士兵的身高關係如圖所示:
Time of Update: 2018-08-17
題目描述 在日常生活中,通過年、月、日這三個要素可以表示出一個唯一確定的日期。牛牛習慣用8位元字表示一個日期,其中,前4位代表年份,接下來2位代表月 份,最後2位代表日期。顯然:一個日期只有一種表示方法,而兩個不同的日期的表 示方法不會相同。牛牛認為,一個日期是迴文的,若且唯若表示這個日期的8位元字是迴文的。現 在,牛牛想知道:在他指定的兩個日期之間包含這兩個日期本身),有多少個真實存 在的日期是迴文的。一個8位元字是迴文的,若且唯若對於所有的i ( 1 <=i<= 8
Time of Update: 2018-08-17
題目描述在一個二維數組中,每一行都按照從左至右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。方法一:直接一跳一跳的尋找即可,我沒想到public class Solution { public boolean Find(int target, int [][] array) {int len=array.length,
Time of Update: 2018-08-17
/*思路:o(n)的演算法,只有當可以更改輸入的數組時候才可用從數組中次數超過一半的數字得到啟發。就是用快速排序的思想,找到第K大的數,那麼左邊都是比它小的數了*/class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {int start=0, end=input.size()-1;int index=Partition(input, start,
Time of Update: 2018-08-17
1、基本演算法 我們知道DAG上一定存在拓撲排序,且若在有向圖G中從頂點Vi->Vj有一條路徑,則在拓撲排序中頂點Vi一定在頂點Vj之前,而因為在DAG圖中沒有環,所以按照DAG圖的拓撲排序進行序列最短路徑的更新,一定能求出最短路徑。 2、基本步驟 處理頂點V時,對每條離開的邊<v,u>執行鬆弛運算,若果<v,u>給出從源點到u的一條最短路徑(經過v),則更新到u的最短路徑。這個過程將檢查圖中每個頂點的所有路徑,同時,拓撲排序確保按正確的順序處理頂點。
Time of Update: 2018-08-17
題意:一個人去找工作 , 然後得到一個面試題:有一些城市和城市之間的道路 , 沒到達一個城市會賺一些錢也有可能會損失一些 , 從源點(入度為0的點)到終點(出度為0的點) , 收益得越多 , 就越有可能得到這份工作 , 問最多能得到多少。 並且題目給出,每條路都是有方向的 , 並且不會有一條路會回到前的城市 , 顯而易見 , 這是一個有向非循環圖(DAG) , 而由於本體資料太大,用普通的做短路演算法肯定會逾時 , 所以我們要充分利用圖是DAG這個條件:
Time of Update: 2018-08-17
問題:有n種硬幣,面值分別為V1,V2……Vn,每種都有無限多。給定非負整數s,可以選用多少個硬幣,使得面值之和恰好為s。輸出硬幣數目最大值。 分析:這題依然是DP的入門題。先說說我在考慮時候的問題,第一就是剛開始認為硬幣的值是狀態,結果怎麼想都想不通,第二就是在看紫書時對於他提出的通過賦一個非常小的初值以達到檢驗該路是否到達終點,一直想不通,最終在某汶神的協助下才脫坑——這題確實挺水的=
Time of Update: 2018-08-17
在網上查資料時發現這篇文章,個人覺得講的非常清晰,學習一下。 PCA演算法原理講解 PCA演算法降低了各個分量之間的相關性,但是缺點就是降維之後並不利於對資料進行分類。 演算法的第一性原理:正交基,共變數的含義,對矩陣對角化的目的,這些東西都是數學理論被玩爛的東西,需要深刻的理解,用不同的方式,去嘗試這些處理的真正的含義,不能只糾結於數學公式。一般的含義,數學也只是一種語言描述工具,那麼轉換成一般的描述該怎麼表達。 總而言之,就是學科基礎支撐的一些公理。
Time of Update: 2018-08-17
W:權重圖 d[u]:u 到終點的距離 s、t:始點和終點 def dag_sp(W, s, t, d): if s == t: return 0 if s not in d: d[s] = min(W[s][v] + dag_sp(W, v, t, d) for v in W[s]) return d[s] DAG = { 'a': {'b':0}, 'b': {'c':4, 'd':6}, 'c': {