Discuz! Board

 找回密码
 立即注册
查看: 55|回复: 2

20241109课程记录|陈鸿宇|二分

[复制链接]

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
发表于 2024-11-9 19:28:55 | 显示全部楼层 |阅读模式
家长你好,陈鸿宇同学20241109学习内容如下:
【课堂内容】
1.学习二分算法;
3.解析查找数字问题,分析边界变化;
4.解析砍树、银行贷款等二分查找问题;
5.分析跳石头等二分答案问题。
【学情分析】
本次课程主讲二分算法,二分算法与搜索算法均具备规则有序,算法固定的特征,需在理解的基础上辅助练习加深印象,课程中对二分算法的基础构架进行了解析,借助例题分析了二分查找与二分答案的算法构建过程。小陈同学课上表现良好,基本理解了二分算法的基本使用方法。
【课后作业】
完成作业网中T2036跳石头问题。
回复

使用道具 举报

3

主题

11

帖子

1306

积分

金牌会员

Rank: 6Rank: 6

积分
1306
发表于 2024-11-15 11:20:38 | 显示全部楼层
Help!
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
int cmp(int x,int y)
{
	return x<y;
 } 
int l,n,m,a[50001],li,r,b[50001],mid,cnt=0;
int main()
{
	scanf("%d %d %d",&l,&n,&m);
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		b[i+1]=abs(a[i+1]-a[i]);
	}
	b[1]=a[1];
	b[n]=l-a[n];
	sort(b,b+n,cmp);
	r=l;
	li=b[1];
	
	for(int i=1;i<=n;i++)
	{
		mid=(li+r)/2;
		if(mid>b[i])
		{
			cnt++;	
		} 
		if(cnt>m)
		{
			r=mid-1;
		}
		else
		{
			if(cnt<m)
			{
				li=mid-1;
			}
		}
	}
	cout<<li;
 } 
回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
 楼主| 发表于 2024-11-15 17:27:51 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 05:24 , Processed in 0.059749 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表