鴨子

@JackH0

Joined on May 6, 2021

  • 組員名單 110525015 劉松靄 111525013 何雋永 109502547 楊晴方 系統環境 作業系統: ubuntu 18.04 Kernel 版本: 5.4.0-131-generic 新增 syscall 過程
     Like  Bookmark
  • 系統環境 作業系統: ubuntu 18.04 Kernel 版本: 5.4.0-131-generic 下載 Kernel Source 到 Kernel Archive 下載 kernel source,選擇最新的 6.0.6 kernel。 解壓縮
     Like 1 Bookmark
  • 問題描述 : 給定一個數值陣列,找到一個子序列,該子序列中的元素必須嚴格遞增,並且使這個子序列的長度盡可能長,只要找到長度即可,(序列的意思表示可以不連續)。 例子 : 0, 1, -2, -1, 3, 5 最長的遞增子序列為 0, 1, 3, 5 (-2, -1, 3, 5),長度為 4 第一種方法 : 暴力法 方法 : 從長度1到n,試著枚舉所有的子序列,接著判斷是否符合嚴格遞增,如果符合那就更新最長的長度。 時間複雜度 : 2^n,因為每個元素可以拿或不拿,這個方法的時間複雜度太高不太實際。
     Like  Bookmark
  • 就是在樹上進行的DP(廢話),因為樹有嚴格的層次關係,所以可以使用DP劃分出子問題,也就是當前的節點可透過子節點的解求出,即狀態轉移方程是由子節點推出父節點的。 遍歷方式 : 由於樹的特性,任兩個節點間只有一條路徑,所以通常利用深度優先搜索來遍歷。在推出狀態轉移方程後,DFS的過程如下 : void dfs (int v, int fa) { for (int i=0; i<edge[v].size(); i++){ int son = edge[v][i]; if (son == fa) continue; dfs (son, v); update(v); //每更新一個子節點,就更新一次 }
     Like  Bookmark