【Codeforces Round #440 (Div. 2) B】Maximum of Maximums of Minimums
2017-10-15 22:25
806 查看
B. Maximum of Maximums of Minimumstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an array a1, a2, ..., an consisting of n integers, and an integer k. You have to split the array into exactly k non-empty subsegments. You'll then compute the minimum integer on each subsegment, and take the maximum integer over the k obtained minimums. What is the maximum possible integer you can get?Definitions of subsegment and array splitting are given in notes.InputThe first line contains two integers n and k (1 ≤ k ≤ n ≤ 105) — the size of the array a and the number of subsegments you have to split the array to.The second line contains n integers a1, a2, ..., an ( - 109 ≤ ai ≤ 109).OutputPrint single integer — the maximum possible integer you can get if you split the array into k non-empty subsegments and take maximum of minimums on the subsegments.Examplesinput
这题一开始没理解好题意就仓促开撸,以为不用连续取 于是排了下序,n==1或者k==1就最小值 其余都是最大值 结果居然Accept了 然后又被hack了 重新读了下题意发现不能这么做 应该多分出一种k==2的情况 暴力枚举一发 k>=3的时候肯定可以把最大点独立出来。
5 2 1 2 3 4 5output
5input
5 1 -4 -5 -3 -2 -1output
-5NoteA subsegment [l, r] (l ≤ r) of array a is the sequence al, al + 1, ..., ar.Splitting of array a of n elements into k subsegments [l1, r1], [l2, r2], ..., [lk, rk] (l1 = 1, rk = n, li = ri - 1 + 1 for all i > 1) is k sequences (al1, ..., ar1), ..., (alk, ..., ark).In the first example you should split the array into subsegments [1, 4] and [5, 5] that results in sequences (1, 2, 3, 4) and (5). The minimums are min(1, 2, 3, 4) = 1 and min(5) = 5. The resulting maximum is max(1, 5) = 5. It is obvious that you can't reach greater result.In the second example the only option you have is to split the array into one subsegment [1, 5], that results in one sequence( - 4, - 5, - 3, - 2, - 1). The only minimum is min( - 4, - 5, - 3, - 2, - 1) = - 5. The resulting maximum is - 5.
这题一开始没理解好题意就仓促开撸,以为不用连续取 于是排了下序,n==1或者k==1就最小值 其余都是最大值 结果居然Accept了 然后又被hack了 重新读了下题意发现不能这么做 应该多分出一种k==2的情况 暴力枚举一发 k>=3的时候肯定可以把最大点独立出来。
#include <bits/stdc++.h>
#define ll long long using namespace std; const int N = 1e5; int a[N+10],n,k,premi[N+10],aftermi[N+10]; int main() { //freopen("F:\\rush.txt","r",stdin); scanf("%d%d",&n,&k); for (int i = 1;i <= n;i++) scanf("%d",&a[i]); if (k==1) { int ans = a[1]; for (int i = 2;i <= n;i++) ans = min(ans,a[i]); printf("%d\n",ans); }else if (k==2) { premi[1] = a[1]; for (int i = 2;i <= n;i++) premi[i] = min(premi[i-1],a[i]); aftermi = a ; for (int i = n-1;i >= 1;i--) aftermi[i] = min(aftermi[i+1],a[i]); int ans = max(premi[1],aftermi[2]); for (int i = 2;i <= n-1;i++) ans = max(ans,max(premi[i],aftermi[i+1])); printf("%d\n",ans); }else { int ans = a[1]; for (int i = 1;i <= n;i++) ans = max(ans,a[i]); printf("%d\n",ans); } return 0; }
相关文章推荐
- Codeforces Round #440 (Div. 2)B. Maximum of Maximums of Minimums
- Codeforces Round #440 (Div. 2) B. Maximum of Maximums of Minimums
- CF 440 div2 B.Maximum of Maximums of Minimums
- Maximum of Maximums of Minimums
- 【Codeforces Round #440 (Div. 2) B】Maximum of Maximums of Minimums
- Codeforces Round #440 (Div. 2, based on Technocup 2018 Elimination Round 2)B. Maximum of Maximums of
- codeforce Maximum of Maximums of Minimums(区间划分 求区间最小值最大值问题)
- What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memor
- Maximum Depth of Binary Tree问题及解法
- Codeforces Round #277 (Div. 2) LIS of Sequence Dp
- Codeforces Round #411 (Div. 2)D. Minimum number of steps(贪心)
- Fix-Dell iDRAC 7 error: RAC0218: The maximum number of user sessions is reached
- Data Structure Array: Maximum of all subarrays of size k
- Codeforces Round #221 (Div. 2)-D. Maximum Submatrix 2
- Maximum Length of Pair Chain
- [转]Spring Boot修改最大上传文件限制:The field file exceeds its maximum permitted size of 1048576 bytes.
- Maximum Depth of Binary Tree
- ORA-00018: maximum number of sessions exceeded 解决方法
- Maximum Depth of Binary Tree
- Maximum Product of Word