1. 首页
  2. 比赛
  3. 讨论
  4. 英雄榜
  5. 排名
  6. 公告
  1. 登录
  2. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文

liangshengrui

UID: 1391, 注册于 2025-1-18 22:16:27, 最后登录于 2026-7-22 8:27:20, 目前离线.

解决了 729 道题目,RP: 268.37 (No. 63)

♂
  • 个人简介

    二分查找

    #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

793
已递交
729
已通过
0
题解被赞
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Theme
    1. Light
    2. Dark
  1. 猿码编程
    地址:佛山市南海区桂城街道
    佳盛国际广场三楼
    联系方式:18138349497
  2. Powered by Hydro v5.0.0-beta.8
关闭

登录

使用您的 Hydro 通用账户

忘记密码或者用户名?