利用

static inline int call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait)

example

在kernel space 呼叫 userspace /bin/touch 去產生檔案,

需要注意 call_usermodehelper 是以 root 的權限執行的。

lettice0913 發表在 痞客邦 留言(0) 人氣()

Linux kernel function

1. 由於是 iph->check 已是 one's complement 過後的狀態,所以 iph->check +=1 相當於是 ttl -1 。

2. 為了處理 ttl =0 是的情況, 也就是 iph->check = 0xffff ,ttl 不減,所以iph->check 做一些特殊處理。

3。目前沒有看到 ttl =0 時,ip_decrease_ttl 被使用的時候。

fu32check = (__forceu32)iph->check;

lettice0913 發表在 痞客邦 留言(1) 人氣()

E. George and Cards

這題一看到題目,就想到greedy+資料結構去加速。

核心思想是找到一段在array 連續的數字,使得要刪除的數字是裡面最小的。

首先找到目前最小要刪除的數字 m

令 m 在 array 的index 是 pos[m] 

lettice0913 發表在 痞客邦 留言(0) 人氣()

C1

C. Circling Round Treasures
 
題解:看了其他人的code 才知道解法,這題真有意思。


dp[x][y][state] :表示目前在點(x,y) ,state 是一個 bitmask ,若某位為 1 表示 object 在所圍的框框當中。

lettice0913 發表在 痞客邦 留言(1) 人氣()

目前使用兩種 tool

(1) etrace

etrace  是根據 gcc 在下 -finstrument-function在 function 前後加入 code 。

使用分法要開兩個terminal 在同一資料夾下。

terminal A : ./etrace.pl prog

lettice0913 發表在 痞客邦 留言(0) 人氣()

A. Valera and Plates

題意: Valera 要吃東西,吃 A 時用bowl , 吃 B 時可用bowl/plate 。一開始n 個 bowl 和 m 個 plate 。如果沒有餐具 Valera

就要洗餐具,一次只能洗一個。問 Valera 最少要洗幾個。

題解: 吃 A 只能用 bowl ,所以先將 bowl 用完。因為 A只能用  bowl ,不夠的話,就要洗。 若還剩下 nb 個 bowl 可留下來裝 B。

接下來考慮 B 的情況,若 m + nb 大於 B 的使用量,就不用洗,若小於,就要洗差值。

lettice0913 發表在 痞客邦 留言(0) 人氣()

C

A. Sereja and Algorithm

題意:Sereja 有一個字串,每個字元只可能是{x,y,z} 其中一個

一個演算法如下

  1. Find any continuous subsequence (substring) of three characters of string q, which doesn't equal to either string "zyx", "xzy", "yxz". If q doesn't contain any such subsequence, terminate the algorithm, otherwise go to step 2.

  2. Rearrange the letters of the found subsequence randomly and go to step 1.

lettice0913 發表在 痞客邦 留言(0) 人氣()

C

A. Dima and Guards

題意:有 n 根柱子,每個柱子旁有2個 guards ,你想要收買其中一根柱子的2個guards 。

每個 guard 可以接收飲料或餅乾。但是每個人對這2者的價格都不一樣,他們只接受比某個

價格還高的物品。

你有 m 元,問能不能達成任務。

lettice0913 發表在 痞客邦 留言(0) 人氣()

MBR

看了很多資料都很片段,在此整理成我認為合理的解釋。

首先BIOS 會去硬碟起始512 bytes 稱為MBR ( master boot record)。然後把它放在記憶體000:07c0 然後去執行它。

MBR 的前446 bytes 是code 。接著64 bytes 是partition table ,最後2bytes 是 magic number 0xAA55。

partition table 由 4 個 entry 組成,每個是16 bytes 。

其內容主要是此partition 起初 CHS ,結束CHS,另外也有 LBA starting sector ,及size,還有 partition 的 type ,type

lettice0913 發表在 痞客邦 留言(0) 人氣()

E

A. Matrix

題意:

給數字陣列Ai , 用A 去組成一個matrix B 且 Bi,j = Ai*Aj

有一個數字 n, 問有幾個 submatrix 內的數字合等於 n

題解:

lettice0913 發表在 痞客邦 留言(0) 人氣()

A. Two Semiknights Meet

題意:有2個人在一個8x8 的盤面上,每個人的前進方向是(2,2),(2,-2),(-2,2),(-2,-2),前進一次要花一秒。

前進之後的位置不可以超過8x8的盤面。

盤面上有的位置標示為".",有的為"#"。問這2個人是否可以在同一時間在某個為"."的位置上。

題解:先考慮此二人(A及B)是否可以在"."點上。接著去想如何才能讓這2人在同一時間到達。令t 為最短到達某點的

lettice0913 發表在 痞客邦 留言(0) 人氣()

分享使用bayes theorem 為基礎的分類系統,需要training 。

首先要先有很多的資料,這裡使用的是資料是文章及文章分類。

let Pr(A) = 分類A出現的比例。

let Pr(B) =  文章B在全部文章出現的比例。

我們可以算出 Pr( B | A ) ,因為每篇文章已經知道其分類了。

lettice0913 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。