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次走到目的地,不過駱駝可以在中途設定一些...