http://codeforces.com/contest/361/problem/D

用二分搜索相邻两个数的差的绝对值,然后用dp记录数改变的次数。dp[i]表示在i之前改变的次数,如果|a[i]-a[j]|<=(i-j)*mid 需要改变。

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define LL __int64
using namespace std;
const LL inf=;
int dp[];
int n,k;
LL a[];
LL ABS(LL a)
{
if(a<) return -a;
return a;
}
bool ok(LL c)
{
memset(dp,,sizeof(dp));
for(int i=; i<=n; i++)
{
dp[i]=i;
for(int j=; j<i; j++)
{
if(ABS(a[i]-a[j])<=(LL)(i-j)*c)
dp[i]=min(dp[i],dp[j]+(i-j-));
}
if(dp[i]+(n-i-)<=k) return true;
}
return false;
} int main()
{
while(scanf("%d%d",&n,&k)!=EOF)
{
for(int i=; i<=n; i++)
{
scanf("%I64d",&a[i]);
}
LL l=,r=inf;
while(l<=r)
{
LL mid=(l+r)/;
if(ok(mid))
{
r=mid-;
}
else l=mid+;
}
printf("%I64d\n",l);
}
return ;
}

最新文章

  1. 台式电脑、笔记本快捷选择Boot(启动项快捷键)大全
  2. Chrome开发者工具不完全指南(五、移动篇)
  3. javaWeb开发小工具---MailUtils及其单元测试
  4. 怎样在myEclipse中使用debug调试程序?
  5. iframe 加载完成事件
  6. http1.1和http1.0区别
  7. kali2.0如何安装中文输入法
  8. MyEclipse过期激活方法
  9. Help Me with the Game
  10. JQuery初识
  11. webpack实用配置
  12. PHP条件语句if的使用
  13. Spring整合quartz框架实现任务定时调度
  14. JAVA在不确定具体 Annotation 类型时,获得注解参数
  15. Jsの练习-数组其他常用方法 -map() ,filter() ,every() ,some()
  16. 20175310 《Java程序设计》第8周学习总结
  17. document.all 在各浏览器中的支持不同
  18. 关于 Web Api 2 认证与授权
  19. springmvc 定时器 多数据源
  20. LCG(linear congruential generator): 一种简单的随机数生成算法

热门文章

  1. fiddler Composer 构建请求
  2. 【HDOJ】1513 Palindrome
  3. Android手势操作
  4. Android豆瓣图书查询Demo
  5. Subarray Sum Closest
  6. Hibernate Validation使用示例及讲解
  7. JS-异常处理
  8. 一种调用opencv库的C++工程通用的Makefile模板
  9. linux自己主动重新启动tomcat脚本
  10. [置顶] Linux协议栈代码阅读笔记(一)