Codeforces Round #440 B. Maximum of Maximums of Minimums-【思维】
来源:互联网 发布:邻里中国网php面试题 编辑:程序博客网 时间:2024/05/29 04:38
传送门:http://codeforces.com/contest/872/problem/B
You are given an array a1, a2, ..., an consisting ofn 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 thek obtained minimums. What is the maximum possible integer you can get?
Definitions of subsegment and array splitting are given in notes.
The first line contains two integers n and k (1 ≤ k ≤ n ≤ 105) — the size of the arraya and the number of subsegments you have to split the array to.
The second line contains n integersa1, a2, ..., an ( - 109 ≤ ai ≤ 109).
Print single integer — the maximum possible integer you can get if you split the array intok non-empty subsegments and take maximum of minimums on the subsegments.
5 21 2 3 4 5
5
5 1-4 -5 -3 -2 -1
-5
A subsegment [l, r] (l ≤ r) of arraya is the sequence al, al + 1, ..., ar.
Splitting of array a ofn elements into k subsegments[l1, r1],[l2, r2], ...,[lk, rk] (l1 = 1,rk = n,li = ri - 1 + 1 for alli > 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 aremin(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.
解题:k = 1 取整个数组最小值
k = 2 取数组头和尾的最大值 两个区间,想要最优,从第一个和最后一个选一个最大的因为不管在哪分都不会比两端的大
k >= 3 取整个数组最大的——分3段 把最大值那个单分出来
#include<cstdio>#include<algorithm>using namespace std;const int INF=0x3f3f3f3f;int num[100010];int main(){int n,k;//scanf("%d%d",&n,&k); while(scanf("%d%d",&n,&k)!=EOF){int minn=INF,maxx=-INF;for(int i = 0; i < n; i++){scanf("%d",&num[i]);minn=min(minn,num[i]);maxx=max(maxx,num[i]);}if(k == 1)printf("%d\n",minn);if(k == 2)printf("%d\n",max(num[0],num[n-1]));//两个区间,想要最优,从第一个和最后一个选一个最大的 if(k >= 3)//因为不管在哪分都不会比两端的大 printf("%d\n",maxx);}return 0;}
- Codeforces Round #440 B. Maximum of Maximums of Minimums-【思维】
- Codeforces Round #440 div2 B Maximum of Maximums of Minimums
- Codeforces Round #440 B. Maximum of Maximums of Minimums
- B. Maximum of Maximums of Minimums --codeforces
- 【Codeforces Round #440 (Div. 2) B】Maximum of Maximums of Minimums
- Codeforces Round #440 (Div. 2)B. Maximum of Maximums of Minimums
- Codeforces Round #440 (Div. 2) B. Maximum of Maximums of Minimums
- Codeforces 872 B Maximum of Maximums of Minimums
- CodeForces 872B Maximum of Maximums of Minimums
- #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, based on Technocup 2018 Elimination Round 2)B. Maximum of Maximums of
- codeforce Maximum of Maximums of Minimums(区间划分 求区间最小值最大值问题)
- Codeforces 667B - Coat of Anticubism(思维)
- Codeforces Round #354 (Div. 2)B.Pyramid of Glasses(思维题)
- Codeforces Round #428 (Div. 2) 839B. Game of the Rows(思维+贪心)
- Codeforces Round #428 (Div. 2) B. Game of the Rows (思维)
- Hbase命令
- SpringMVC(1)----@RequestParam和@PathVariable用法小结
- jqwidgets 国际化- 中文 jqxGrid 中文语言包 gridlocalization
- Android知识点(一)
- Spring cloud系列七 为@Feign中集成的Ribbon进行个性化配置
- Codeforces Round #440 B. Maximum of Maximums of Minimums-【思维】
- 整合webview的一些资料
- python网络爬虫系列教程——python中requests库应用全解
- Linux patch命令
- Java 字符串去掉空格的几种方法
- 一个简单的傅里叶变换matlab函数(绝对可用)
- 似然与极大似然估计
- C#学习-网站基础(一)
- muduo库源码学习(base)FileUtil