摘要: 二分 P1678 思路 二分先找到>=x的坐标i,然后取a[i]-x,a[i-1]-x的绝对值最小值 代码 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n, m; long long int an 阅读全文
posted @ 2025-08-01 14:53 Roin_Long 阅读(3) 评论(0) 推荐(0)
摘要: x = x & (x - 1)去除最低位的1 x &= x - 1这个操作会精确地消除x的最低位的1 因此每次执行这个操作时,x中确实有一个1被消除了 所以可以直接count++,因为每次操作都对应一个真实的1 代码 #include <bits/stdc++.h> using namespace 阅读全文
posted @ 2025-08-01 14:33 Roin_Long 阅读(3) 评论(0) 推荐(0)
摘要: 二分问题 一开始我没有看清楚题目写成这样了 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n, m, ans; int a[N], b[N]; int main() { cin >> n >> m; 阅读全文
posted @ 2025-07-31 17:40 Roin_Long 阅读(6) 评论(0) 推荐(0)
摘要: 二分问题 P1296 思路 每个牛的交流距离d是一样的,所以只要距离在d内就可以交流,要求可以交流的对数只要先按照坐标的大小排序好,然后找到遍历找到当前牛可以交流的数量加到ans就行了 用二分查找找到第一个大于a[i] + d的坐标j,此时i+1,i+2······,j-1都是可以与i交流 代码 # 阅读全文
posted @ 2025-07-31 16:45 Roin_Long 阅读(4) 评论(0) 推荐(0)
摘要: 数学问题 P1258 思路 当甲和乙都被车载过一次并且同时到终点最快,也就是车载甲到A点然后回去载乙,最后和甲于终点相遇 计算 甲的运动 t1 = x/b t2 = (s-x)/a t甲 = x/b + (s-x)/a 车的运动 车在x处把甲放下 乙走了a*x/b 车和乙的距离 = x - a*x/ 阅读全文
posted @ 2025-07-30 22:17 Roin_Long 阅读(6) 评论(0) 推荐(0)
摘要: 摆烂了好久 总结一下模板这里是小数类型的二分 void Binary(double l, double r) { if (r - l < 1e-8) { ans = (r + l) / 2; return; } if (check(mid)) Binary(l, mid); else Binary( 阅读全文
posted @ 2025-07-30 13:42 Roin_Long 阅读(6) 评论(0) 推荐(0)