算法题目——子序列和问题(poj-3061)(尺取法)
生活随笔
收集整理的這篇文章主要介紹了
算法题目——子序列和问题(poj-3061)(尺取法)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目鏈接:POJ-3061
題意:給定一個序列,使得其和大于或等于S,求最短的子序列長度。
問題分析:
1.首先序列都是正整數(shù),當子序列和大于等于S時,已經(jīng)沒有必要再將右端點繼續(xù)向右移動。因為再向右移動,序列的長度一定會大于此時的長度
2.所以,當子序列和小于S時,右端點向右移動;當子序列和大于等于S時,左端點向右移動。
3.如果右端點一直移動到最右端時,此時的序列和仍小于S,就結(jié)束枚舉
這個題目區(qū)間和明顯是有趨勢的:單調(diào)變化,所以根據(jù)題目要求很容易求解,但是在使用之間需要對區(qū)間前綴和進行預(yù)處理計算。
問題所在點
0x3f3f3f3f 0x開頭的 是十六進制常數(shù), 等于 十進制 1061109567
等于 二進制: 00111111 00111111 00111111 00111111
在算法競賽中,我們常常需要用到設(shè)置一個常量用來代表“無窮大”。
const int inf=0x3f3f3f3f
總結(jié)
以上是生活随笔為你收集整理的算法题目——子序列和问题(poj-3061)(尺取法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机YY直播APP怎么在线与人工客服交流
- 下一篇: 算法题目——读书知识点统计问题(POJ-