51Nod 1285 山峰和分段

2021-07-16 13:21:41 字數 936 閱讀 8759

acm模版

這裡需要強調的是,峰如果被分割,依然算峰,所以,首先需要對點資料進行峰資料檢索,然後處理得到乙個pre陣列用來儲存前i個點資料中有幾個峰。當然,我們最多分的段數受峰個數控制。

#include 

#include

using

namespace

std;

const

int maxn = 5e4 + 10;

// const int inf = 0x3f3f3f3f;

int point[maxn]; // 點資料

int peak[maxn] = ; // 峰資料,b[0]存峰個數,1表示峰

int pre[maxn] = ; // 峰資料,前i個點有幾個峰

int main(int argc, const

char * argv)

for (int i = 2; i < n; i++)

}for (int i = 1; i <= n; i++)

}int ans = 0;

for (int i = peak[0]; i > 0; i--)

ans = i;

int z = n / i; // z為山峰長度

int j = z;

for (; j <= n; j += z)

}if (j > n) // 符合條件的劃分方式

}std::cout

<< ans << '\n';

return

0;}

51nod 1394 差和問題

1394 差和問題 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 有乙個集合s,初始狀態下有n個元素,對他進行如下操作 1 向s裡面新增乙個值為v的元素。輸入格式為1 v 2 向s裡面刪除乙個值為v的元素。輸入格式為2 v 3 詢問s裡面的元素兩兩之差絕對值之和...

51nod 最大子段和

給出乙個整數陣列a 正負數都有 如何找出乙個連續子陣列 可以乙個都不取,那麼結果為0 使得其中的和最大?例如 2,11,4,13,5,2,和最大的子段為 11,4,13。和為20。輸入 第1行 整數序列的長度n 2 n 50000 第2 n 1行 n個整數 10 9 a i 10 9 輸出 輸出最大...

51nod 1093 駱駝和香蕉

1093 駱駝和香蕉 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 乙隻駱駝每次最多負重k只香蕉,而它每走1公里要吃掉1只香蕉,不吃完不肯走。現在這只駱駝要去到n公里以外的地方,如果n k,那麼即使駱駝裝滿了香蕉,也無法1次走到目的地,不過駱駝可以在中途設定一些...