当前位置: 首页 > wzjs >正文

三网合一的模板网站怎么做非法网站

三网合一的模板网站,怎么做非法网站,wordpress island主题,中信建设有限责任公司投资部执行总监P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 题目 并查集解析代码【并查集解】 Set 解法解析lower_bound代码 题目 并查集解析 首先先让所有的f(i)i,即每个人最开始的祖先都是自己,然后就每一次都让轮到那个数的父亲1&#xff08…

P8686 [蓝桥杯 2019 省 A] 修改数组--并查集

    • 题目
  • 并查集解析
    • 代码【并查集解】
  • Set 解法解析
    • lower_bound
    • 代码

题目

在这里插入图片描述

并查集解析

首先先让所有的f(i)=i,即每个人最开始的祖先都是自己,然后就每一次都让轮到那个数的父亲+1(用过后的标记),第二次出现的时候就直接用父亲替换掉

并查集的作用:并查集用于快速查找元素的根节点,并进行路径压缩以提高效率。

并查集适用场景

1.快速合并与查询:需要频繁合并集合(如标记某个数已被占用)和查询根节点(找下一个可用位置)。
2.路径压缩优化:通过压缩查找路径,使得后续查询接近常数时间复杂度。
3.动态维护连续区间:每个数字的父节点指向下一个可用位置,天然维护了一个动态递增的区间。

代码【并查集解】

#include <iostream>
#include <vector>
#include <set>
#include <cstring>
#include <algorithm>
#include <math.h>
#include <queue>
#include <climits>  // 包含INT_MAX常量
#include <cctype>
using namespace std;
int n, f[100010];int find(int x) {if (f[x] == x)return x;return f[x] = find(f[x]);
}int main() {cin >> n;for (int i = 1; i <= 1e5; i++)f[i] = i;for (int i = 0; i < n; i++) {int x;cin >> x;x = find(x);cout << x << ' ';f[x] += 1;//为下一次重复做准备}return 0;
}

Set 解法解析

这道题我们可以利用set 的有序性和高效查找特性,直接找到每个元素的最小可用值

代码思路:
先将1~1e6的值依次存入set中,然后利用lower_bound()找到第一个大于等于x的值,使用过后再利用erase()删除
【这个代码的思路完全符合我们脑中所想】

lower_bound

是一个用于在有序序列中【有序序列set】查找特定元素的函数。它返回指向第一个不小于给定值的元素的迭代器。结合set(有序集合),可以高效解决需要动态维护有序数据并快速查找的问题。

lower_bound 的核心功能
1.作用:在有序序列中找到第一个不小于目标值的位置。
2.返回值:
i 如果存在符合条件的元素,返回指向该元素的迭代器。
ii如果所有元素都小于目标值,返回容器的end()迭代器。

在 set 中使用 lower_bound
set 的特性:
1.元素唯一且按升序自动排序。
2.插入、删除和查找操作的时间复杂度为 O(log N)。
调用方式:

auto it = s.lower_bound(x);  // it 是迭代器,指向第一个 >=x 的元素
cout << *it;                 // *it 是该元素的实际值
s.erase(it);                 // 直接传递迭代器删除元素(不需要 *)

lower_bound 下界 & upper_bound上界
在这里插入图片描述

为什么不用 vector 替代 set?
vector 的插入、删除和查找效率较低,适合静态数据。

vector 的查找必须遍历或使用 find 算法,效率低。

代码

#include <iostream>
#include <vector>
#include <set>
#include <cstring>
#include <algorithm>
#include <math.h>
#include <queue>
#include <climits>  // 包含INT_MAX常量
#include <cctype>
using namespace std;
int n;
set<int> s;int main() {cin >> n;for (int i = 1; i <= 1e6; i++)s.insert(i);for (int i = 0; i < n; i++) {int x;cin >> x;auto a = s.lower_bound(x); //lower_bound返回第一个大于等于x的值,在有序集合set中能完美解决该问题cout << *a << ' ';s.erase(a);}return 0;
}

文章转载自:

http://YmIMsQDM.mmxnb.cn
http://5wCPaMMX.mmxnb.cn
http://8nykoFnR.mmxnb.cn
http://WXY6zTvM.mmxnb.cn
http://ISn9paC0.mmxnb.cn
http://2YXjLzYo.mmxnb.cn
http://MMVI8UD5.mmxnb.cn
http://zOnu6pAT.mmxnb.cn
http://mHwlWxrh.mmxnb.cn
http://OdE6dYdg.mmxnb.cn
http://3ucpAwVB.mmxnb.cn
http://GCxwEtiO.mmxnb.cn
http://vCtR2MEb.mmxnb.cn
http://vp2JN3HJ.mmxnb.cn
http://uFsYn9r3.mmxnb.cn
http://Jji3zLG2.mmxnb.cn
http://kkn2QrLw.mmxnb.cn
http://8Ukydj9i.mmxnb.cn
http://SjatgXZc.mmxnb.cn
http://tCp2tOmB.mmxnb.cn
http://RhiopGgk.mmxnb.cn
http://MoU1Xy5D.mmxnb.cn
http://49icq9Jn.mmxnb.cn
http://fINkw9hd.mmxnb.cn
http://3JvplHEN.mmxnb.cn
http://Ds5Wwof4.mmxnb.cn
http://9DroJqzY.mmxnb.cn
http://PoMOItIP.mmxnb.cn
http://B3Txmk2W.mmxnb.cn
http://cg5nrbTP.mmxnb.cn
http://www.dtcms.com/wzjs/759788.html

相关文章:

  • 用xp做网站是否先搭建iiswordpress图片主题下载
  • 有新浪的域名怎么做网站万网博通官网
  • 站内推广有哪些具体方式重庆网站开发公
  • 做爰全过程免费视频网站不需要写代码的网站开发软件
  • 搬瓦工vps建设网站广州安全教育平台官网登录
  • 网站建设策划书风险控制嘉兴网站免费制作
  • 购物网站ppt怎么做农村电商怎么赚钱
  • 大气网站图电子工程网校
  • 黄村专业网站开发公司网页生成图片
  • 石油化工工程建设人才招聘网站德州有名的网站建设公司
  • 光速网络网站网站每年续费费用
  • 济南建设网站制作优化分析网站cms系统排名
  • 专业建设网站哪个好互联网推广企业
  • 自己做简单网站cdr做网站
  • 教育类门户网站光纤做网站 移动不能访问电信
  • 建设网站查询密码网站如何做聚合页面
  • 网站设计平台 动易网络工程是学啥的
  • 网站手机版方案wordpress网站背景设置
  • 网站错误提示页设计wordpress 后台 模板
  • 寻找石家庄网站建设网站建设结束语
  • 网站运营工作的内容面试学校网站开发
  • 房管局 网站做房查贵阳酒店网站建设
  • 网站推广的基本方式温州网站设计服务
  • 微信网站开发视频教程黄金网站app视频下载小说
  • 广西柳州网站建设公司面包类网站设计
  • 餐饮网站系统做企业网站制作
  • 网站空间建站美工网站做兼职
  • 如何才能做好品牌网站建设自驾游网站建设方案
  • 优舟网站建设免费网络电视直播在线观看
  • 低成本网站制作施工企业向建设单位提供预付款担保产生的费用属于