dag上的動態規劃:
有向無環圖上的動態規劃是學習dp的基礎,很多問題都可以轉化為dag上的最長路、最短路或路徑計數問題。
1.沒有明確固定起點重點的dag模型:
巢狀矩形問題:有n個矩形,每個矩形可以用兩個整數a、b表示它的長和寬,矩形可以巢狀在矩形中當且僅當a選出盡量多的矩形排成一行,使得除了最後乙個之外,每個矩形都可以巢狀在下乙個矩形內。如果有多解矩形編號字典序應盡量小。
1/**2
* 巢狀矩形問題:有n個矩形,每個矩形可以用兩個整數a、b表示它的長和寬,
3* 矩形可以巢狀在矩形中當且僅當a4*/5
static
int d= ;
6static
inta=new
int[6][6];78
public
static
void geta(eryuan es) 14}
15}16}
1718
public
static
int dp(int i)
22 d[i]=0;
23for(int j=0;j) 27}
28return
d[i];29}
3031
public
static
void test(int i,string head)
37 string str="";
38for(int j=0;j) 42}
43}44public
static
void
main(string args)
52geta(es);
53for(int i=0;i)
56int max=0;
57for(int i=1;i)
60for(int i=max;i) 64}
65 }
1class
eryuan
8return
false;9
10}11public eryuan(int x, int
y) 16
17 }
2.固定終點的最長路和最短路
硬幣問題:有n種硬幣,面值分別為v1..vn,每種都有無限多,給定非負整數s。可以選用多少個硬幣,使得面值之和恰好為s?輸出硬幣的最小值和最大值1<=n<100,0<=s<=10000,1<=vi<=s
1static
intd=new
int[10];
2static
intvis=new
int[10];
3static
intv=new
int[5];
4/**
5* 硬幣問題:有n種硬幣,面值分別為v1..vn,每種都有無限多,給定非負整數s。
6* 可以選用多少個硬幣,使得面值之和恰好為s?7*/
8/**
9* s->0的路徑長度
10*
@params11
*/12
public
static
int dp(int
s)
如果要列印出來就同上,可以用遞推或者儲存的方式列印出來,儲存的話用空間換取時間。
3.小結
傳統的遞推法可以表示成「對於每個狀態i,計算f(i)",或者稱為「填表法」.這需要對於每個狀態i,找到f(i)依賴的所有狀態。
刷表法:對於每個狀態i,更新f(i)所影響的狀態。只有當每個狀態所依賴的對它的影響相互獨立時才能用刷表法。
第九章(筆記)
轉移指令是可以修改ip,或同時修改cs和ip的指令 offset 是用於提取標號偏移位址的操作符 jmp在第2章裡說到時用於修改ip或同時修改cs和ip的轉移指令,這章裡單獨的jmp指令是乙個無條件的轉移指令 jmp short 標號 是實現段內短轉移 jmp near ptr 標號 是實現段內近轉...
第九章作業
班級 0401304 學號 2013211526 姓名 鄧小俊 2.身份驗證 依據使用者所提供的身份資訊,來進行登入驗證,可以再細分為使用者是否可以登入sql sever 使用者是否可以登入到指定的目標資料庫等。授權 已通過身份驗證的使用者,檢查其所被賦予的許可權,是否可以訪問或者執行目標的物件 3...
第九章 引用
引用擁有指標的所有功能,只是語法更加的簡單 1 引用就是別名,變數的另外乙個名字,變數和別名它們的位址是一樣的,操作別名就是操作變數 2 引用就是別名常量,一旦引用被初始化就不能再改變了 可以理解為指標常量,指向的值不能改變,能改變的只是它的該位址處的值 3 引用物件huamn mike human...