二分查找
。
河林山
这个作者很懒,什么都没留下…
展开
-
二分查找(只记一个模板)
注意:数组元素都是从下标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 · 531 阅读 · 0 评论 -
Courses(HDU - 1083)二分图的最大匹配
题目:Coursesvjudge提交链接题意:——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 · 113 阅读 · 0 评论 -
Matrix(二分套二分)
题目:Matrixvjudge提交链接题意:给出n和mn代表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 · 382 阅读 · 0 评论 -
Hamburgers(二分)
题目:Hamburgersvjudge提交链接题意:亲手做汉堡第1行:给出一个字符串,代表汉堡,只由字母B,S,C组成,第2行:给出字母B,S,C现有数量第3行:给出字母B,S,C的单价第4行:给出手中的金钱总数。求:最多能做出多少汉堡。附上本人参考的博文:紫芝-白羊-解题思路:暴力求解很难办,因为钱分配问题比较难处理。二分枚举做出来的汉堡数量,从而可得每个类型所需的材料数量,当然必须减去手中原有的材料数量。计算出所需材料总费用,最后与金钱总数比较,不断放缩区间,最终得最大汉堡原创 2021-05-10 11:18:32 · 256 阅读 · 0 评论 -
多源最短路+二分
题目:Travel Expense牛客提交链接邀请码:ayit606示例1输入3 21 22 331 2 51 3 52 3 2输出512题意:第一行: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 · 106 阅读 · 0 评论