
二分查找
。
河林山
这个作者很懒,什么都没留下…
展开
-
二分查找(只记一个模板)
注意: 数组元素都是从下标1开始的。 计蒜客二分查找之例题1 ——查询整数 x 是否在数组 A 中,存在,输出YES;不存在,输出NO //tmp所指的为下标,范围[1,n] int B_S(int x) { int low=1,high=n,tmp=low,mid; while(low<=high) { mid=(low+high)/2; if(a[mid]<=x) { tmp=mid; low=mid+1; } else high=mid-1;原创 2022-03-31 18:04:15 · 562 阅读 · 0 评论 -
Courses(HDU - 1083)二分图的最大匹配
题目:Courses vjudge提交链接 题意: ——p门课程,n个学生,一个学生可能选择多门或者一门也不选,但每门课只能由一个学生代表,并且一个学生只能代表一门课。判断是否能通过合理分配,使得p门课都有一位学生代表。 代码: #include "stdio.h" #include "string.h" int e[303][303]; int match[303]; int book[303]; int p,n;//课,人 int dfs(int u)//课 { for(int i=1;i<原创 2021-05-18 10:18:20 · 139 阅读 · 0 评论 -
Matrix(二分套二分)
题目:Matrix vjudge提交链接 题意: 给出n和m n代表n*n的矩阵,每个点对应的数都满足该公式: f ( i , j ) = i * i+100000 * i + j * j - 100000 * j + i * j; 求第k小的数。 易错点: ——打表会得到该规律:从左上角到右下角递减,但这只部分满足。 解题思路: 规律1:j固定,可得随i的增大,函数整体增大。 规律2:i固定,可得随j的增大,函数整体增大。 ——因此点(x,y)对应值一定比点(x+1,y)、(x,y+1)都小,但这两个点的原创 2021-05-10 11:32:14 · 418 阅读 · 0 评论 -
Hamburgers(二分)
题目:Hamburgers vjudge提交链接 题意: 亲手做汉堡 第1行:给出一个字符串,代表汉堡,只由字母B,S,C组成, 第2行:给出字母B,S,C现有数量 第3行:给出字母B,S,C的单价 第4行:给出手中的金钱总数。 求:最多能做出多少汉堡。 附上本人参考的博文: 紫芝 -白羊- 解题思路: 暴力求解很难办,因为钱分配问题比较难处理。 二分枚举做出来的汉堡数量,从而可得每个类型所需的材料数量,当然必须减去手中原有的材料数量。计算出所需材料总费用,最后与金钱总数比较,不断放缩区间,最终得最大汉堡原创 2021-05-10 11:18:32 · 304 阅读 · 0 评论 -
多源最短路+二分
题目:Travel Expense 牛客提交链接 邀请码:ayit606 示例1 输入 3 2 1 2 2 3 3 1 2 5 1 3 5 2 3 2 输出 5 1 2 题意: 第一行:n,m 接下来m行,表示u,v相连 接下来Q次询问: s,t,b表示起点,终点,和手中的金钱。 对于每次询问,需求出从s到t最多可带的东西数量。 收费须知:假如你带k件东西,s到t为距离3 应付综费:k + k * k + k * k * k。 代码: #include<stdio.h> #include&原创 2021-05-05 10:53:34 · 128 阅读 · 0 评论