foj1465 Sub Sequence 記錄

這道題目感覺也不是很難,奈何提交多次都是超時,後來發現原來會卡STL的sort……先把超時的程序貼出來吧,這道題目也讓我知道了原來全局區的大小可以比棧多許多。

//解題思路
//用sum[j] = v[0] + .. + v[j]
//如果v[x]都是正數,則很容易解決,因爲直接for j,然後可以用2分的思想;
//問題在於v[x]可以<0, 因此得到的結果sum不一定是有序的;
//改進思路:
//可以對sum數組進行排序於是得到有序數組
//sum[0], sum[1], sum[2], ..., sum[n]
//分情況討論,如果目標值m<0,那麼就按照從大到小排序,否則從小到大排序
//if sum[j]-sum[i]=dest, and sum[j].index>sum[i].index即可,
//else if (sum[mid] - sum[i] < dest) low, high
//else if (sum[j] - sum[i] > dest)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章