動態規劃的方程大家都知道,就是
f[i,j]=min{f[i-1,j-1],f[i-1,j],f[i,j-1],f[i,j+1]}+a[i,j]
但是很多人會懷疑這道題的后效性而放棄動規做法。
本來我還想做Dijkstra,后來變了沒二十行pascal就告訴我數組越界了……(dist:array[1..1000*1001
div 2]...)
無奈之余看了xj_kidb1的題解,剛開始還覺得有問題,后來豁然開朗……
反復動規。上山容易下山難,我們可以從上往下走,最后輸出f[n][1]。
xj_kidb1的一個技巧很重要,每次令f[i][0]=f[i][i],f[i][i+1]=f[i][1](xj_kidb1的題解還寫錯了)
標簽:
動態規劃
方程
家
上傳時間:
2014-07-16
上傳用戶:libinxny
//建立頂級窗口
toplevel = XtVaAppInitialize[&app, "List", NULL, 0,
&argc, argv, NULL, NULL]
//建立列表上的復合字符串
for[i=0 i<12 i++]
str_months[i] = XmStringCreateSimple[months[i]]
//建立列表
n = 0
XtSetArg[args[n], XmNitems, str_months] n++
XtSetArg[args[n], XmNitemCount, 12] n++
XtSetArg[args[n], XmNvisibleItemCount, 8] n++
//XtSetArg[args[n], XmNscrollBarDisplayPolicy, XmSTATIC] n++
//XtSetArg[args[n], XmNlistSizePolicy, XmCONSTANT] n++
XtSetArg[args[n], XmNselectionPolicy, XmEXTENDED_SELECT] n++
list = XmCreateScrolledList[toplevel, "list", args, n]
XtManageChild[list]
for[i=0 i<12 i++]
XmStringFree[str_months[i]]
//顯示窗口
XtRealizeWidget[toplevel]
//進入事件循環
XtAppMainLoop[app]
標簽:
NULL
XtVaAppInitialize
toplevel
List
上傳時間:
2013-12-21
上傳用戶:asdkin