暑期集训-并查集和二分

大神们总结的二分的两种经典模板

1.

while (l < r)
    {
        int mid = l + r >> 1;	//(l+r)/2
        if (check(mid))  r = mid;    // check()判断mid是否满足性质
        else l = mid + 1;
    }

2.

while (l < r)
    {
        int mid = l + r + 1 >> 1;	//(l+r+1)/2
        if (check(mid))  l = mid;
        else r = mid - 1;
    }

这两者的区别是,一个向左找答案,一个向右找答案平时在运用的时候,要先将问题要找的答案区间弄清,这样就可以套公式了。

二分的应用分为二分查找和二分答案,两者的区别是,二分查找有一个确定要找的值,不断缩小搜索范围,而二份答案只有一个答案区间,不断缩小答案区间范围求出最优解。

一般题目中说找某个值,利用二分查找,而找最小值的最大,最大值的最小这类的描述,就是要用二份答案。

并查集

并查集是一种数据结构,主要作用就是用来判断联通关系(两个事物之间是否有某种关联)。


并查集主要由一个整型数组pre[ ]和两个函数find( )、join( )构成。
数组 pre[ ] 记录了每个点的前驱节点是谁,函数 find(x) 用于查找指定节点 x 属于哪个集合,函数 join(x,y) 用于合并两个节点 x 和 y 。

find函数模板

int find(int x)
{
	while(pre[x] != x)			
		x = pre[x];				
	return x;					
}

join函数模板

void join(int x,int y)
{
    int fx=find(x), fy=find(y);           
    if(fx != fy)                         
        pre[fx]=fy;                      
}

我在写并查集类型的题一般的结题过程:

1.判断元素范围。

2.从一队元素开始,判断联通性(比较两个元素的“祖先”)。(题目中若有需要,符合条件的合并)

3.判断是否联通,或者统计独立联通块的个数。(一般答案就是这些)

 照例贴一下相关链接:

http://t.csdn.cn/pFQ0A

http://t.csdn.cn/rFoOA

http://t.csdn.cn/mLqUa

http://t.csdn.cn/ch3jt

基于SSM框架的网红酒店预定系统,是一个集前台用户操作和后台管理员管理于一体的综合性平台。该系统旨在通过信息化手段,提高酒店预订的效率和用户体验。 系统的主要功能模块包括: 1. **用户管理**:允许用户注册、登录,查看个人信息,以及修改个人资料和密码。 2. **客房管理**:管理员可以添加、删除或修改客房信息,包括房型、价格、设施等。 3. **预订管理**:用户可以浏览可用房型,进行预订操作,管理员则可以管理预订订单,包括确认预订、办理入住和退房等。 4. **退订管理**:用户和管理员都可以处理预订的取消,管理员可以审核退订请求。 5. **系统管理**:管理员可以进行系统设置,包括权限管理、日志查看等。 系统的设计考虑了用户体验和管理员的便捷性,通过SSM框架的灵活性和MySQL数据库的稳定性,实现了数据的高效管理和处理。系统的前端界面友好,操作流程简洁,能够满足用户快速预订和查询的需求。同时,系统的后台管理功能强大,能够为管理员提供全面的数据分析和决策支持。 此外,系统还具有高度的安全性和稳定性,通过角色权限控制,确保了数据的安全性和系统的稳定运行。系统的开发和设计,不仅提升了网红酒店的品牌形象,也为用户带来了便捷的预订体验,进一步推动了酒店行业的信息化发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值