奇怪的二分,错了-HELP ME!
  • 板块灌水区
  • 楼主EDG_SCI
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/11/3 13:37
  • 上次更新2023/11/3 16:55:47
查看原帖
奇怪的二分,错了-HELP ME!
971200
EDG_SCI楼主2023/11/3 13:37

题目背景 英语考试结束了,成绩惨不忍睹......

题目描述 11班的英语考试考的极差,班主任zozo十分生气,她想在n名考生中找到一名考生,使成绩比他低的同学受到惩罚。同时zozo在班上有m位十分喜欢的同学,zozo不想让他们收到惩罚,现在知道了这m位同学的分数,求zozo要找的那名考生的名次使zozo能惩罚尽可能多的人

输入格式 第一行两个整数,分别是n,m

第二行n个升序的整数,表示已经排好的名次的分数

第三行m个整数,表示zozo喜欢的同学的分数

输出格式 一个数,表示zozo要找的那名同学的名次

输入输出样例 输入 #1复制 10 3 79 90 101 110 119 124 130 137 140 148 148 124 137 输出 #1复制 5 说明/提示 对于20%的数据,n <= 100 ,m <= n

对于60%的数据,n <= 10^3,m <= n

对于100%的数据,n <= 10^4,m <= n 代码:```cpp #include #include using namespace std; long long lef,righ,mid,ans,q[1000005],w[1000005],n,m,e=100000,r,j,k,l,c,v; int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>q[i]; } for(int i=1;i<=m;i++){ cin>>w[i]; if(e>=w[i]){ e=min(e,w[i]); ///////////////////////////////////////////////////////////////////////////////r=i; }

	////////////////////////////////////////////////////////////////////////////////////cout<<e<<endl;
}

cout<<e<<endl;
lef=1;
righ=m;
while(lef<righ){
	mid=(lef+righ)/2;
	if(lef<e){
		lef=mid+1;
		ans=mid;
		
	}
	if(righ>e){
		righ=mid-1;
	}
	if(mid=e){
		cout<<mid;
		return 0;
	}
//////////////////////////////////////////////////////////////////////////////////////	cout<<mid<<endl;
}
cout<<ans;

}


#include<iostream>
#include<cmath>
using namespace std;
long long lef,righ,mid,ans,q[1000005],w[1000005],n,m,e=100000,r,j,k,l,c,v;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>q[i];
	}
	for(int i=1;i<=m;i++){
		cin>>w[i];
		if(e>=w[i]){
			e=min(e,w[i]);
			///////////////////////////////////////////////////////////////////////////////r=i;
		}

		////////////////////////////////////////////////////////////////////////////////////cout<<e<<endl;
	}
	
	cout<<e<<endl;
	lef=1;
	righ=m;
	while(lef<righ){
		mid=(lef+righ)/2;
		if(lef<e){
			lef=mid+1;
			ans=mid;
			
		}
		if(righ>e){
			righ=mid-1;
		}
		if(mid=e){
			cout<<mid;
			return 0;
		}
	//////////////////////////////////////////////////////////////////////////////////////	cout<<mid<<endl;
	}
	cout<<ans;
	
}
2023/11/3 13:37
加载中...