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