傳送門
一句話題意:求1~n長度區間最大值與最小值之乘積的最大值(保證資料隨機)
time cost: 45min
solution:
比較基本的題
首先統計答案可以針對每個點更新所有長度 這樣可以單調
然後...然後就不會了
發現是資料隨機 所以可以亂搞
對於每個點作為最大值 類似尺取法的方式更新最小值和答案
這樣一般情況下複雜度隨資料波動性變化 單調性越強越涼
code:
1 #include2 #include3 #include4 #include5 #include6 #include7#define b puts("ggggggg");
8#define ms(a,b) memset(a,b,sizeof a)
9#define rep(i,a,n) for(int i = a;i <= n;i++)
10#define per(i,n,a) for(int i = n;i >= a;i--)
11#define inf 2147483647
12using
namespace
std;
13 typedef long
long
ll;14
ll read()
21while(c >= '
0' && c <= '9'
) 25
return
as *fu;26}
27const
int n = 110003;28
//head
29int
n;30
ll a[n],dp[n];
31int
main() 47}
48 rep(i,1,n) printf("
%lld\n
",dp[i]);49}
50return0;
51 }
HDU 5696 區間的價值
我們定義 區間的價值 為一段區間的最大值 最小值。乙個區間左端點在 l 右端點在 r 那麼該區間的長度為 r l 1 現在聰明的傑西想要知道,對於長度為 k 的區間,最大價值的區間價值是多少。當然,由於這個問題過於簡單。我們肯定得加強一下。我們想要知道的是,對於長度為 1 n的區間,最大價值的區間價...
HDU 5696 區間的價值 暴力
我們定義 區間的價值 為一段區間的最大值 最小值。乙個區間左端點在l,右端點在r,那麼該區間的長度為 r l 1 現在聰明的傑西想要知道,對於長度為k的區間,最大價值的區間價值是多少。當然,由於這個問題過於簡單。我們肯定得加強一下。我們想要知道的是,對於長度為1 n的區間,最大價值的區間價值分別是多...
HDU5696 區間的價值(分治 單調佇列)
題目 定義區間的價值為這個區間內最大值和最小值的乘積。給定乙個序列,求這個序列的每個長度的區間價值的最大值。所有測試資料嚴格隨機。思路 初學分治,感覺挺不好想出來,參考了一下別人的思路。因為要求每個區間最大值和最小值的乘積,先固定最小值,然後列舉最大值,由於確定了最小的一邊,隨著長度增加,區間的價值...