函数最值2
来源:互联网 发布:ubuntu开机网卡自启动 编辑:程序博客网 时间:2024/05/22 12:15
二分+DP
二分挺好想,只是DP 的 Check让人难以理解。
DP[i]表示i不改变的最小修改的元素个数
转移?DP[i]=i-1//显然枚举1->i-1如果abs(a[i]-a[j])<=mid*(i-j) DP[i]=min(DP[j]+i-j-1)//改中间的数为什么?假如abs(a[i]-a[j])>mid*(i-j),不可能通过调整中间的数来使得区间内的值小于<=mid而当abs(a[i]-a[j])<=mid*(i-j),可以通过调整中间区间的值给搞成相同的去满足要求
#include <cstdio>#include <iostream>#include <cmath>using namespace std;int dp[2010],a[2010];int n,k;bool check(int mid){ int ans=n+1; for(int i=1;i<=n;i++) { dp[i]=i-1; for(int j=1;j<i;j++) if(abs(a[i]-a[j])<=1ll*(mid*(i-j))) dp[i]=min(dp[i],dp[j]+i-j-1);//大于了怎么改都不成立 ans=min(ans,dp[i]+n-i);//假设后面改掉 } return ans<=k ;}int main(){ int n,k; scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) scanf("%d",&a[i]); int l=0,r=1e8,ans=0; while(l<=r) { int mid=(l+r)/2; if(check(mid)) ans=mid,r=mid-1; else l=mid+1; } printf("%d",ans); return 0;}
阅读全文
0 0
- 函数最值2
- 数组最值函数
- 函数最值
- HDU5734(二次函数最值)
- 4.1.2--求函数最值—Strange fuction
- 三分法求解凸函数的最值!!!
- 三分法求解凸函数的最值
- 三分法求单峰函数最值
- Matlab--函数极值最值零点
- lightoj 1297 - Largest Box 【函数最值】
- 二分法解决函数最值问题
- 几种求函数最值的算法
- python最常用函数
- python最常用函数
- 演化计算(实例:多峰函数最值)
- 如何用matlab求函数的最值?
- UVa - 10794 The Deadly Olympic Returns!!! 二次函数最值
- zju 3421 Error Curves(凸函数最值,三分法)
- 在线生成小程序二维码,在线制作带参数微信小程序二维码
- Makefile经典教程
- 日记本会员注册界面(register.php)
- Spring MVC ContentNegotiation内容协商机制(一个请求路径返回多种数据格式)源码解析
- 使用Eclipse编译运行MapReduce程序
- 函数最值2
- caffe 提取特征并可视化(已测试可执行)及在线可视化
- Parallels Desktop CentOS 安装Parallels Tools和共享文件夹
- PAT (Basic Level) Practise (中文)1020. 月饼 (25)
- BlockingQueue在任务调度中的精彩应用
- 【HDU 6217 2017ACM/ICPC亚洲区沈阳站】BBP Formula
- Windows下安装TensorFlow快速教程
- 栈的动态实现
- Unity3D -Queue的简单实用