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

有关学校网站建设的建议互动企业展厅设计公司

有关学校网站建设的建议,互动企业展厅设计公司,企业网站策划建设方案,建筑公司跟建设公司有什么区别P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 题目 并查集解析代码【并查集解】 Set 解法解析lower_bound代码 题目 并查集解析 首先先让所有的f#xff08;i#xff09;i#xff0c;即每个人最开始的祖先都是自己#xff0c;然后就每一次都让轮到那个数的父亲1#xff08… P8686 [蓝桥杯 2019 省 A] 修改数组--并查集 题目 并查集解析代码【并查集解】 Set 解法解析lower_bound代码 题目 并查集解析 首先先让所有的fii即每个人最开始的祖先都是自己然后就每一次都让轮到那个数的父亲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; setint 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://www.hkea.cn/news/14301236/

相关文章:

  • 包头建设厅官方网站想自己开发一款软件
  • 网站建设多少钱哪个济南兴田德润有活动吗个人网站的设计及实现
  • 四川移动网站建设报价网站建设专业输入法
  • 东莞网站托管公司安阳网络平台
  • 南宁做网站设计方案wordpress网页没法评论
  • 江苏建设网官方网站龙华营销型网站建设公司
  • 广州建设水务局网站建设企业网站企业网银
  • 上海网站制作是什么营销推广48个方法
  • 有网站了怎么设计网页wordpress会员推广下载支付插件
  • 顺德网站建设哪家好集团网站设计公司
  • 建筑网站绿地新里城菏泽注册公司流程和费用
  • 上海闵行网站建设网站被攻击了怎么办
  • 网站建设 部署与发布题库wordpress文件调用
  • 网站备案和不备案有什么区别大连微信网站建设
  • 温州好的网站推广官网是怎么做的
  • wordpress网站全过程举报网站平台
  • 合肥哪家做网站小程序开发平台需要网站吗
  • 如何做打码网站整合营销网络推广
  • 先做网站后付款网站建设与管理实训课程
  • 阿里巴巴国际贸易网站苏州专业建站
  • 电子商务网站建设的方法江阴设计公司
  • 网站 app 哪个先做深圳谷歌优化seo
  • 如何制作餐馆网站门户网站界面设计
  • 做网站视频手机做美团旅游网站多少钱
  • 什么直播可以做游戏视频网站吗品牌营销型网站
  • 如何免费制作网站如何用discuz做网站
  • 我网站正在建设中盐城经济技术开发区建设局网站
  • 锦州网站开发建设电商平台怎么搭建
  • 做网站有er图天津葛沽 网站建设公司
  • 东莞 企业 网站制作建设部继续教育网站