wqs二分(带权二分)

目前最好的两篇文章:

dp 小计 wqs 二分 - g1ove - 博客园 (cnblogs.com)
【学习笔记】WQS二分详解及常见理解误区解释-CSDN博客
后面的用来理解基本做法,前面的用来解释问题。

关于用小数,答案是不用的。整数一定能切到 k,只是没法表示出来。

设一个斜率 c 可以直接切到 kk+1 点(即两点连线的斜率),那么有 c=g(k+1)g(k)(k+1)k=g(k+1)g(k) 其中 g(k)g(k+1) 一定都是整数,所以 g(k+1)g(k) 一定也是整数,所以 c 一定是一个整数。

因为这个斜率是直接切到 kk+1 点,所以整数一定可以切到 k,但因为选取的顺序,所以可能最后返回的点不是 k,而是 k+1,或者因为多点共线,导致表面上切不到 k 点,(即不返回 k)。某些博客里面说的:切出来的直线的斜率 k 在一个范围 [kl,kr] 内都是落在同一个 x 点上,应该就是表达的这种证明。

即使是共线,因为斜率还是那个斜率,可以切到 k (只是表面上不返回 k),所以正常求 g(x) 即可。但要注意,因为选取倾向不同,共线选到的点也不同,二分的倾向也就不同(即二分封左/右)。这句话比较抽象(应该没有博客能讲出来)。做做这题 P2619 [国家集训队] Tree I - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 勇敢一点,应该就能理解这句话。

posted @   blind5883  阅读(15)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示