首页 > 其他分享 >二分

二分

时间:2024-11-16 09:56:47浏览次数:1  
标签:二分 std int namespace cin using main

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[8];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<8;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>t){
			R=M-1;
		}else{
			L=M+1;
		} 
		
		if(a[R]<=t){
			cout<<R;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[10];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<10;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>t){
			R=M-1;
		}else{
			L=M+1;
		} 
		if(a[M]>=t){
			cout<<M;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[5];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<5;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>t){
			R=M-1;
		}else{
			L=M+1;
		} 
		if(a[R]==t){
			cout<<R;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[5];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<5;i++){
		cin>>a[i];
	}
	int x=1000;
	// 1 2 2 3 4
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]>=t){
			R=M-1;
		}else{
			L=M+1;
		} 
		if(a[L]==t){
			cout<<L;
			return 0;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

#include <bits/stdc++.h>
using namespace std;
int main(){
	int a[5];
	int t,L=0,R=4,M=0;
	cin>>t;
	for(int i=0;i<5;i++){
		cin>>a[i];
	}
	int x=1000;
	for(int i=0;L<=R;i++){
		M=(L+R)/2;
		if(a[M]==t){
			if(x>M){
				x=M;
				R=M-1;
			}
			
			cout<<M;
			return 0;
		}else if(a[M]<t){
			L=M+1;
		}else if(a[M]>t){
			R=M-1;
		}
	}
	cout<<"-1";
	
	
	
	
	return 0;
}

  

标签:二分,std,int,namespace,cin,using,main
From: https://www.cnblogs.com/fushuxuan/p/18549049

相关文章

  • 【RMBO-BILSTM分类预测2024新算法】红嘴蓝鹊优化算法RMBO优化双向长短期记忆神经网络
    %%清空环境变量warningoff%关闭报警信息closeall%关闭开启的图窗clear%清空变量clc%清空命令行tic%restoredefaultpath%%读取数据res=xlsread('数据集.xlsx');%%划分训练集和测试集%P_train=res(1:250,1:12)';T_train=res(1:250,13)';M......
  • 【算法】二分查找
    基本内容提高在有序的数组中查找满足某一条件的索引二分查找的基本类型①有多种情况满足条件,找到满足条件的最右索引,例如找到值为4的最右索引(也可以换为小于5的最后一个元素)​ ②有多种情况满足条件,找到满足条件的最左索引,例如找到大于4的第一个元素...​ ③仅存......
  • NOIP 复习题之二分图
    CF741C有\(2n\)个人围成一圈坐在桌子边上,每个人占据一个位子,对应这\(2n\)个人是\(n\)对情侣,要求情侣不能吃同一种食物,并且桌子上相邻的三个人的食物必须有两个人是不同的,只有两种食物,问一种可行分配方式。思路:我们在两个点之间连边,表示他们吃的不一样。然后对于点对\((......
  • 二分——E. Klee's SUPER DUPER LARGE Array!!!
    题目Klee有一个数组a长度n包含整数[K,K+1,...K+n]按此顺序。Klee想要选择一个索引i(1<=i<=n),使得x=|a1+a2+...+ai-ai+1-...-an|最小化。请注意,对于任意整数z,|z|表示x.输出x.输入第一行包含t(1≤t≤1e4)—测试用例的数量。每个测试用例包含两个整数n和k(2≤n,k≤109)—数......
  • 代码随想录算法训练营第一天| 704. 二分查找、35.搜索插入位置、27. 移除元素、977.有
    文档讲解:代码随想录视频讲解:代码随想录状态:完成4道题一、数组理论基础数组:连续内存空间,存储类型相同的元素集合,适合读不适合写注意:Python里可以存储不同类型的元素,但刷题时都是按照相同元素去做的相同元素占用存储的空间大小是一样的,下一个元素的位置就确定了数组时间......
  • 二分找最小绝对值
    Klee'sSUPERDUPERLARGEArray!!!每次测试时间限制:2秒每次测试的内存限制:256MB题目描述Klee拥有一个长度为n的数组a,数组中的元素依次为[k,k+1,...,k+n-1]。Klee希望选择一个索引i(1≤i≤n),使得x=|a1+a2+⋯+ai-ai+1-⋯-an|最小。其中对于任意......
  • 整数二分查找 leetcode35. 搜索插入位置 leetcode704. 二分查找
    这两道题的本质是一样的,都是整数二分查找。题目给出的条件比较强,序列是严格单调递增的。但是我这个即使序列存在重复的元素也可以满足需求35.搜索插入位置classSolution{public:intsearchInsert(vector<int>&nums,inttarget){intsize=nums.size();......
  • 代码随想录:二分查找
    代码随想录:二分查找二分法标志:数组顺序排列且无重复简单的二分法,写法是左闭右闭的写法,此种情况的left可以等于right,故while里有等号。classSolution{public:intsearch(vector<int>&nums,inttarget){intleft=0;intright=nums.size()-1;......
  • 二分查找(折半查找)函数与非函数写法代码介绍及其优缺点 C语言
    什么是二分查找?二分查找也叫折半查找 在有序的数组中查找目标的方法需要借助中间元素与目标值的比较来逐步缩小范围一直到找到目标元素或者不存在为止查找的步骤↓1确定左右端点的下标值(注:数组下标从0开始)2计算中间下标位置3比较中间下标位置的数组值与目标值的大......
  • 数列分段(二分)
    [数列分段SectionII]题目描述对于给定的一个长度为\(N\)的正整数数列\(A_{1\simN}\),现要将其分成\(M\)(\(M\leqN\))段,并要求每段连续,且每段和的最大值最小。关于最大值最小:例如一数列\(4\2\4\5\1\)要分成\(3\)段。将其如下分段:\[[4\2][4\5][1]\]第一段和为......