-
个人简介
二分查找
#include <bits/stdc++.h> using namespace std; int main() { return 0; } //如果存在x 这个函数返回1 否则返回0 int bs(int x){//查找数字x 在a数组当中有没有出现过 int l=1,r=n; while(l<=r){ int m=(l+r)/2;//mid if(a[m]==x) return 1; if(a[m]>x) r=m-1; if(a[m]<x) l=m+1; } return 0; } //查找数字x第一次出现的位置 int bs2(int x){//查找数字x 在a数组当中有没有出现过 int l=1,r=n,ans=-1;//细节1:左右指针的初始值 while(l<=r){//细节2:while循环里面的条件一定是 l<=r int m=(l+r)/2;//mid if(a[m]==x) ans=m,r=m-1; if(a[m]>x) r=m-1;//细节3:仔细思考指针是怎么样移动的 if(a[m]<x) l=m+1; } return ans; } //查找数字x最后一次出现的位置 int bs3(int x){//查找数字x 在a数组当中有没有出现过 int l=1,r=n,ans=-1;//细节1:左右指针的初始值 while(l<=r){//细节2:while循环里面的条件一定是 l<=r int m=(l+r)/2;//mid if(a[m]==x) ans=m,l=m+1; if(a[m]>x) r=m-1;//细节3:仔细思考指针是怎么样移动的 if(a[m]<x) l=m+1; } return ans; } //我们结合bs2和bs3 可以帮助我们快速的查找某个数字在 数组里面一共出现了多少次 6---> 1 2 3 4 5 6 //查找大于x 第一次出现的位置 int bs4(int x){ int l=1,r=n,ans=-1; while(l<=r){ int m=(l+r)/2; if(a[m]>x) ans=m,r=m-1; else l=m+1; } return ans; } //查找大于等于x 第一次出现的位置 int bs5(int x){ int l=1,r=n,ans=-1; while(l<=r){ int m=(l+r)/2; if(a[m]>=x) ans=m,r=m-1; else l=m+1; } return ans; } //查找小于x 最后一次出现的位置 int bs6(int x){ int l=1,r=n,ans=-1; while(l<=r){ int m=(l+r)/2; if(a[m]<x) ans=m,l=m+1; else r=m-1; } return ans; } //查找小于等于x 最后一次出现的位置 int bs7(int x){ int l=1,r=n,ans=-1; while(l<=r){ int m=(l+r)/2; if(a[m]<=x) ans=m,l=m+1; else r=m-1; } return ans; } //结合bs5和bs7 可以快速的计算在数组中 L到R这段范围内的数字有多少个进制转换
string tentod(int n,int d){//十进制转d进制 if(n==0)return "0"; string s; while(n){ int t=n%d; char c; if(t<=9){ c=char(t+'0'); }else{ c=char(t-10+'A'); } s=c+s; n/=d; } return s; }int dtoten(string s,int d){d进制转10进制 int sum=0,w=1; for(int i=s.size()-1;i>=0;i--){ int x; if(s[i]>='0'&&s[i]<='9'){ x=s[i]-'0'; }else{ x=s[i]-'A'+10; } sum+=x*w; w*=d; } return sum; } -
最近活动
- 王远航GESP三级测试 作业
- 2026编程素养挑战赛-初赛 作业
- 编程素养挑战赛-模拟赛 3 OI
- 编程素养挑战赛-模拟赛 3-赛后提交 IOI
- 编程素养挑战赛-模拟赛 2 OI
- 编程素养挑战赛-模拟赛 2-赛后提交 IOI
- 编程素养挑战赛-模拟赛 1 OI
- STL容器 课程
- 栈 课程
- 广度优先搜索 课程
- DFS深度优先搜索 课程
- 递归 课程
- 寒假_补强班_5_结构体排序与贪心强化 作业
- 寒假_补强班_4_二维差分 作业
- 寒假_补强班_3_二维前缀和 作业
- 寒假_补强班_2_字符串强化 作业
- 南海区赛_最终模拟_COPY版本 作业
- 南海区赛_易错点测试题 OI
- 南海区赛_最终模拟 OI
- 区赛_综合复习 作业
- 王老师_区赛复习9 作业
- 王老师_C++区赛模拟2 OI
- 王老师_C++区赛模拟1 OI
- 王老师_区赛复习7 作业
- 南海区赛_小学组_历年_前两题 作业
- 王老师_区赛复习5 ACM/ICPC
- 周三晚_刷题班_1_COPY版本 作业
- 王老师_区赛冲刺2_COPY版本 作业
- for循环 总复习 作业
- 王老师_区赛复习4_COPY版本 作业
- 周五晚_练习2 作业
- 王老师_区赛复习 4 OI
- 王老师_区赛冲刺2 OI
- 王老师_区赛复习3_COPY版本 作业
- 王老师_区赛复习3 OI
- 王老师_区赛复习2_COPY版本 作业
- 王老师_区赛复习1_COPY版本 作业
- 王老师_区赛复习1 OI
- 王老师_班级小测 作业
- 王老师_字符串+进制转换复习 作业
- 王老师_尺取法1班级 作业
- 王老师_前缀和进阶班级 作业
- 王老师_区间贪心 作业
- 王老师_班级小练 作业
- 王老师_国庆班级1_第三次课_综合性测试+讲解 作业
- 王老师_国庆班级1_第二次课_二维前缀和+二维差分 作业
- 王老师_国庆班级1_第一次课_简单贪心 作业
- 王老师班级_阶段性小测 作业
- 王老师_结构体排序+递推 作业
- 王老师_结构体+函数+进制转换+连续性问题 作业
-
Stat
-
Rating