2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
来源:互联网 发布:淘宝旺旺权重值查询 编辑:程序博客网 时间:2024/06/08 10:37
#include <bits/stdc++.h>using namespace std;const int N = 3E5 + 7;int n, k, a[N], dp[N];bool judge(int key){ int pre = 0; for(int i = k;i <= n;i ++) { int j = dp[i - k] + 1; if(a[i] - a[j] <= key) pre = i; dp[i] = pre; } return dp[n] == n;}int main(){ scanf("%d%d",&n,&k); for(int i = 1;i <= n;i ++) scanf("%d",&a[i]); sort(a + 1, a + 1 + n); int l = 0, r = a[n] - a[1]; while(l <= r) { int m = (l + r) / 2; if(judge(m)) r = m - 1; else l = m + 1; } printf("%d\n", l); return 0;}
二分然后随便DP下,dp[i]表示1-i可满足要求的最接近i的位置,如果最后整段都满足要求一定有dp[n] == n;
转移为如果a[i] - a[dp[i-k]+1] <= key(当前二分的)值则1~i都满足要求,因为dp[i - k]位置之前的都满足要求了,所以两断连起来也满足,则完成转移。
阅读全文
0 0
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- codeforces883I 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rule
- Codeforces 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror)
- codeforces H. Delete Them(2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, )
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest J Bottles
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest J dp
- SDUT1114Single Contest codeforces883 I+M 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest Union of Doubly Linked Lists
- codeforces/2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (B)
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest M. Quadcopter Competition
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest F. Lost in Transliteration
- 20171025
- CF#877 E. Danil and a Part-time Job(DFS序+线段树)
- cookie,sessionstorage与localstorage
- linuk下安装jdk与tocmat步骤
- Angular学习第二天
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- Junit 测试不支持多线程踩记及解决方案
- CG实验5 简单光照明模型
- 组合运算式(计蒜客)
- jq 点击把下拉框的值累加到文本框值中
- java常用算法之冒泡排序简单例子
- linux多线程同步
- Java变量和标识符
- 【算法】常用的排序算法之冒泡排序