jzoj4882 多段线性函数
来源:互联网 发布:糖尿病网络咨询医生 编辑:程序博客网 时间:2024/06/06 04:57
题目描述
解
虽然题目很难看懂,但还是很良心的,因为给了我们一个启发: 峰值是一段区间.
把x的取值范围想象为”框”,fmin(y)这个函数就是求y到每个框的最小距离之和.
不难发现fmin(y)是一个不严格的单峰函数,即峰值不止一个点.
因为答案一定是在某个框内或不在框内,
对于第一种情况,在答案[L,R]之间时,左右是平衡的,当y=l-1时,那么右边就多出来一个框,答案变大,右边同理.
对于第二种情况,如果不在框内,换句话说[L,R]中间是没有框的,那么显然L-1必然有框,不然答案就不正确. 对于右边同理,那么进入了一个框,对应的答案就要增加. 可以知道他一定是单峰函数.
如果是单峰函数那就好办了,直接三分求出一个极值点,然后直接倍增求L,R即可.
不过还是打炸了….只有40分,丢个正确的模板上来共参考.
ll l=0,r=1e9,p1,p2,fp1,fp2; while (l<r) { p1=(l*2+r)/3; //不知道为什么p1和p2的取值换一种打法就错了 p2=(l+r*2)/3; fp1=getf(p1); fp2=getf(p2); if (fp2>=fp1) r=p2;else l=p1+1; //这里要注意小于等于和小于的区别 }
0 0
- 【jzoj4882】【多段线性函数】
- jzoj4882 多段线性函数
- JZOJ4882. 【NOIP2016提高A组集训第12场11.10】多段线性函数
- 【JZOJ4882】【NOIP2016提高A组集训第12场11.10】多段线性函数
- {题解}[jzoj4882]【NOIP2016提高A组集训第12场11.10】多段线性函数
- 多段线性函数
- jzoj 4882. 【NOIP2016提高A组集训第12场11.10】多段线性函数 乱搞
- JZOJ 4882 【NOIP2016提高A组集训第12场11.10】多段线性函数
- 多分数段函数求值
- 第五周 分段函数(多段)
- 多分数段函数求值(实验)
- 两段函数求值
- 段选择器 段描述符 段描述符表 线性地址形成
- 段选择器 段描述符 段描述符表 线性地址形成
- 段选择器 段描述符 段描述符表 线性地址形成
- 段选择器 段描述符 段描述符表 线性地址形成
- C++实验三—多分数段函数求值
- C++实验3-多分数段函数求值
- 编译安装libimobiledevice
- [校内模拟]YL杯超级篮球赛(中位数)
- 161111
- 结构体运算符重载
- #早安,努力#11.12
- jzoj4882 多段线性函数
- ubuntu终端字体大小和窗口大小设置
- 泛型
- bzoj 4717: 改装 二分+set
- tiptop中如何完成即时通讯
- git bash中文乱码问题解决办法
- 最优化中的牛顿法,二阶收敛性
- Spring MVC Mybatis多数据源
- ECMAScript6笔记:对象的扩展