我們往往習慣將運算過程的臨時結果儲存起來,這樣的思想比較容易理解也是慣性的思維,然而往往大多數情況下我們不需要儲存中間過程的變數。
這裡舉乙個例子,杭電oj的1003題maxsum,雖然同時採用暴力求解,但是中間的sum結果不採用二維陣列儲存而只是簡單的通過每次置0後重新計算這樣就可以節省空間。
雖然超時了,但是還是將**貼上下來,來警醒自己該丟棄的丟棄,不要有慣性思維。
1/*1003 maxsum
2解決方案:類動態規劃
3結果:超時4*/
5 #include 6 #include 7 #include 89
#define num_length 100000 + 100
1011
intmain()
1230
*/31
32for(j = 0; j < num_len; j++)
3336
37
/*38
for(j = 0; j < num_len; j++)
3942
*/43
44//
maxsum = sum[0][0];
45 maxsum = num[0
];46 start = 0
;47 end = 0;48
49for( j = 0; j < num_len - 1; j++)
5062}63
}64
/*65
if(sum[num_len - 1][num_len - 1] > maxsum)
66
71*/
7273 printf("
case %d:\n
",i);
7475
if(i !=num_case)
76 printf("
%d %d %d\n\n
",maxsum,start,end);
77else
78 printf("
%d %d %d
",maxsum,start,end);
7980}81
}828384
85順便貼一下某位大神寫的ac的dp**:
8687 #include88
using
namespace
std;
89#define min -999999
90int
main()
91
114if(sum<0
) 115
119} 120
if(step!=1
) 121 cout<122 cout<<"
case
"<":"
<123 cout<"
"<"
"124 step++;
125}
126return
0;
127 }
乙個小技巧
下午去牙科看牙,順便幫我媽把鞋上個鞋絆。修鞋的老太太慈眉善目,於是跟她攀談起來。我問她,您看這鞋怎麼樣啊?老太太瞅瞅鞋,笑笑不說話。我又說,這是在沂蒙大樓專櫃買的,打折處理的 款,也不知道質量怎麼樣。老太太嗯嗯幾聲,還是不言語。一邊修著鞋,老太太看我態度還算虛心,就跟我傳授了經驗。大意就是,專櫃處理...
VIM ctags的乙個小技巧
vim可以使用ctags製作的tags檔案來瀏覽程式原始檔。問題是,當原始檔存放在目錄樹 也就是所謂的source tree 的時候,該怎麼辦呢?在預設情況下,ctags只會處理當前目錄裡的原始檔,而且vim也只會參考當前目錄的tags檔案。這時候,如果當前目錄裡的原始檔引用了其他目錄裡的定義,那麼...
tomcat的乙個小技巧
tomcat進入manage管理介面的方法.1,進入到tomcat檔案加然後進去找到conf資料夾裡面的tomcat user.xml檔案 2.用記事本開啟。3.要想進入到manage的管理頁面,首先新增乙個管理員角色 然後寫上你想要輸入的使用者名稱或者密碼即可 這樣就可以用從管理的manage裡面...