原创 linux0.11操作系統源碼剖析fork.c

fork() 用於創建 一個新的進程,一次調用兩次返回。父進程返回子進程的PID 子進程是 0. fork() 採用寫時複製,也就是 創建的時候 就複製了頁表,並沒有實際的內存空間,子進程這個時候和父親共享內存,但是子進程只有 讀

原创 linux1.0操作系統源碼剖析 sched.h sched.c

這篇文章 只是學習筆記,如有錯誤或疑問,歡迎指出。 #ifndef _SCHED_H #define _SCHED_H #define NR_TASKS 64 //系統最多的進程數 #define HZ 100 /

原创 MIT 6.828 (五) Lab 5: File system, Spawn and Shell

重要的前面基本上已經做了,現在就剩下lab5了。對於這個實驗本身要你寫的代碼不多,但是要自己去看的賊他媽的多。原諒我複製粘貼別人的。 Lab 5: File system, Spawn and Shell 在本實驗中,我們將實現s

原创 MIT 6.828 (一) Lab 1: Booting a PC

獲取完資源就開始幹了。 我這裏就做了個大概的內容分析,具體的還是跟着那幾個大佬吧 前面一大堆都是沒用的,就是告訴一些作業的提交。 Part 1: PC Bootstrap 這個並沒有要你做啥,就是讓你 熟悉下彙編。 然後讓你知道怎

原创 FWT快速沃爾什變換-簡解及證明

FWT簡介 FWT 用來求卷積,和FFT很像. 三個公式 Ck=∑i∣j=kAi∗Bj C_k=\sum_{i|j=k}A_i * B_j Ck​=i∣j=k∑​Ai​∗Bj​ Ck=∑i&j=kAi∗Bj C_k=\s

原创 斜率優化DP

什麼是斜率優化DP?顧名思義,用斜率優化的DP。 推薦一波博客這個大哥將的不錯。 斜率優化DP,一開始會化成一個式子,像 f(j)−f(k)g(j)−g(k)<s(i) \frac{f(j)-f(k)}{g(j)-g(

原创 2019牛客暑期多校訓練營(第十場) J Wood Processing

題意: nnn快木板,合成kkk塊木板。相同高度可以合併,不同高度,需要把高的木板砍成和低的木板一樣高。問合成kkk塊最少浪費多大木板面積。 題解: dp[i][j] 表示前j個合成i個木板最小花費面積。轉移方程爲 dp[i][j

原创 樹鏈剖分原理和實現

原文鏈接:https://www.cnblogs.com/George1994/p/7821357.html 樹鏈剖分原理和實現 樹鏈剖分就是將樹分割成多條鏈,然後利用數據結構(線段樹、

原创 出神入化的分塊 Educational Codeforces Round 71 (Rated for Div. 2) E Remainder Problem

Educational Codeforces Round 71 (Rated for Div. 2) E Remainder Problem 題意: 兩種操作,一種ax+ya_x+yax​+y,第二種查詢 ∑i=y5e5ai,(i

原创 分治算法

分治算法,顧名思義,分而治之。 分治算法,每次將區間減半,化爲[l,mid],[mid+1,r]區間,再用解決的兩個區間來跟新[l,r],非常典型的例子就是歸併排序。 歸併排序,每次對[l,mid],[mid+1,r]處理,然後O

原创 2019 Multi-University Training Contest 10 1011 Make Rounddog Happy

HDU 6701 Make Rounddog Happy 題意 : 給你nnn個數,和kkk,找到區間[l,r] max(al,…,ar)−(r−l+1)<=kmax(a_l,\dots,a_r)-(r-l+1)<=k

原创 2019牛客暑期多校訓練營(第八場)Just Jump

題意: 終點位置爲LLL,中間點是1,2,⋯ ,L−11,2,\cdots,L-11,2,⋯,L−1 ,開始位置在000,每次必須走至少ddd步,在第tit_iti​步不能出現在pip_ipi​這個位置,問從0

原创 2019 Multi-University Training Contest 9 1007 Rikka with Travels

HDU 6686 Rikka with Travels 題意: 在一顆樹上選擇兩條不相交的路徑的可能性有多少,路徑長度定義爲路徑的頂點數。 題解: 初步思考,觀察樣例可以發現,求的是兩條路徑的有序對,[2,1],[1,2]不是同一

原创 2019 Multi-University Training Contest 5 1002 three arrays

HDU 6625 three arrays 題意: 給兩個數組,求兩個數組兩兩異或後最小字典序。 題解: 求字典序最小,也就是求值最小,如果是求一個數和另一個數組裏面的一個值異或最小,很顯然就是字典樹,就是在字典樹上優先取同位相同

原创 2019牛客暑期多校訓練營(第七場) E Find the median

2019牛客暑期多校訓練營(第七場) Find the median 題意: 先把輸入處理一下,沒啥問題吧。處理完後應該相當於每次在一個集合裏面加入l,r之間所有的數,問中位數是多少。 題解: 這題很有意思,離散化+線段樹 就能做