今天看見一道演算法題,大概意思是將乙個陣列,取乙個連續子陣列,使得輸出的是最大的子陣列和。想到了用尺取法。
尺取法顧名思義,是像尺子一樣丈量自己的資料來源,取得自己所需的範圍,對計算連續子區間的很多問題都有不錯的效果。具體步驟如下:
1.選擇起點,不斷延伸到達符合條件的終點;
3:取範圍。
實際上就是像蚯蚓一樣不斷的往前爬,長度一致,爬完一遍之後又變長了,重新再爬一遍,直到爬到符合要求的區間,進行操作。
附上十個陣列元素取子區間最大和的**,共同學習:
#include
#include
#include
using namespace std;
int main()
;int maxsum = 0;
int tempsum = 0;
int sum = 0;
int len, start;
int i;
for (len = 1; len < 11; len++)//長度
tempsum = 0;}}
cout <<"the max sum is :"<< maxsum << endl;
system("pause");
return 0;
}
關於521 用樹狀陣列(尺取法)
時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 acm隊的流年對數學的研究不是很透徹,但是固執的他還是想一頭扎進去。瀏覽網頁的流年忽然看到了網上有人用玫瑰花瓣拼成了521三個數字,頓時覺得好浪漫,因為每個男生都會不經意的成為浪漫的製造者。此後,流年走到 都能看到5 2 1三個...
Codeforces 1156C 尺取法 二分
題意 給你乙個陣列,問裡面最多能匹配出多少對,滿足abs a i a j k 思路 首先肯定要排序。思路1 尺取法 看了dreamoon的 明白的。我們可以尋找乙個最長的段,這段的最大值和最小值的差小於k,假設陣列長度是n,那麼答案是min n 2,n mx 為什麼呢?如果mx大於n 2,容易發現我...
week5 C 平衡字串(尺取法)
一 題目描述 乙個長度為 n 的字串 s,其中僅包含 q w e r 四種字元。如果四種字元在字串 現次數均為 n 4,則其為乙個平衡字串。現可以將 s 中連續的一段子串替換成相同長度的只包含那四個字元的任意字串,使其變為乙個平衡字串,問替換子串的最小長度?如果 s 已經平衡則輸出0。input 一...