zzulioj 1959 陣列最大值 思維

2021-07-25 04:19:29 字數 1112 閱讀 5171

time limit: 1 sec  

memory limit: 128 mb

submit: 37  

solved: 12

submit

status

web board

有乙個陣列a,它的初始下標為1,我們不知道這個陣列裡的元素,但知道這個陣列滿足以下幾個性質:

①長度為n,且a[1]=0,a中所有的數都是非負整數;

②任意兩個相鄰元素差的絕對值不大於1,比如a[1]=4,那麼a[2]的值只可能是3,4,5中的乙個

③對於部分的特殊點xi,滿足a[xi]<=ki,這樣的點共m個

問陣列a中的最大值最大可能為多少?

多組測試資料,第一行乙個整數t(<=10),表示測試資料數量

每組資料第一行兩個整數n,m,表示a的長度與特殊點的個數,其中1<=n<=100000, 0<=m<=50.

之後m行,每行兩個整數xi與ki,其中1<=xi<=n,0<=ki<=100000,且xi以增序給出。

保證輸入合法

每組輸入乙個數表示陣列中的可能最大值

110 34 25 69 35

思路:

初始化 a [ 1 ] = 0,b [ n +1 ] = n + 1,先從左往右掃一遍,保證 a [ ] 盡可能遞增,再從右往左掃一遍,保證 b [ ] 盡可能遞減(反向遞增),

最後答案便是 max ( min ( b [ i ] ,a [ i ] ) ),1 < = i < = n;

#include#include#includeusing namespace std;

const int maxn=1e5+10;

int n,m;

int a[maxn],b[maxn],c[maxn];

int main()

a[1]=0;

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

b[n+1]=maxn;

for(int i=n;i>0;i--)

int ans=-1;

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

printf("%d\n",ans);

} return 0;

}

1038 絕對值最大 ZZULIOJ

題目描述 輸入3個整數,輸出絕對值最大的那個數。輸入 輸入包含3個int範圍內的整數,用空格隔開。輸出 輸出三個數中絕對值最大的數,單獨佔一行。若絕對值最大的數不唯一,則輸出最先出現的那個。例如,若輸入為1 3 3,則輸出為 3 若輸入為1 3 3則輸出為3。樣例輸入 copy 1 2 3 樣例輸出...

ZZULIOJ 1786 求最大值

time limit 1 sec memory limit 128 mb submit 141 solved 30 submit status web board 給定 個數,a 1 到a n 請你幫忙找出a i a j 的最大值,其中1 i j n.第一行乙個數 表示一共有 組資料 t 20 每組...

zzulioj 1899 985的最大和難題

985的最大和難題 time limit 1 sec memory limit 128 mb submit 285 solved 29 submitstatusweb board description 985有2 n 1個整數,他每次可以將其中n個數變號,操作次數不限,問他可以得到的最大和。inp...