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

服装网站开发的需求分析小程序制作需要什么语言

服装网站开发的需求分析,小程序制作需要什么语言,企业营销模式,中文 wordpress 主题作用 快速的处理以下问题#xff1a;【近乎O(1)的时间完成】 1.将两个集合合并 2.询问两个元素是否在一个集合中 用树的形式维护集合 基本原理 每一个集合用一棵树表示 每一个集合的编号就是根结点的编号#xff0c;对于每一个结点#xff0c;都存储其父结点#xf…作用 快速的处理以下问题【近乎O(1)的时间完成】 1.将两个集合合并 2.询问两个元素是否在一个集合中 用树的形式维护集合 基本原理 每一个集合用一棵树表示 每一个集合的编号就是根结点的编号对于每一个结点都存储其父结点p[x]表示x的父结点即p[x]a表示编号为x的结点的父结点的编号为a 求某个点属于哪个集合时就先找其父结点如果其父结点不是根结点那么就继续找其父结点的父结点直到找到其根结点为止 问题1 如何判断树根if(p[x]x) 问题2 如何求x的集合编号while(p[x]!x) xp[x];【只要x不是树根就一直往上走直到找到树根为止】 该步骤时间复杂度仍然很高需要进行以下优化 路径压缩一旦找到根结点就会把整个路径上所有点都指向根结点。【基本O(1)】 安秩合并【一般不用】 问题3 如何合并两个集合px是x集合的集合编号【即x集合的根节点的编号是px】py是y集合的集合编号【即y集合的根节点的编号是py】 p[px]py或p[py]px 代码实现 int find(int x) {//返回x所在集合的编号路径压缩 if (p[x] ! x) p[x] find(p[x]); return p[x]; } 例题——合并集合 一共有n个数编号是1~n最开始每个数各自在一个集合中。 现在要进行m个操作操作共有两种 “M a b”将编号为a和b的两个数所在的集合合并如果两个数已经在同一个集合中则忽略这个操作 “Q a b”询问编号为a和b的两个数是否在同一个集合中 输入格式 第一行输入整数n和m。 接下来m行每行包含一个操作指令指令为“M a b”或“Q a b”中的一种。 输出格式 对于每个询问指令”Q a b”都要输出一个结果如果a和b在同一集合内则输出“Yes”否则输出“No”。 每个结果占一行。 数据范围 1≤n,m≤105 输入样例 4 5 M 1 2 M 3 4 Q 1 2 Q 1 3 Q 3 4 输出样例 Yes No Yes 代码 #includeiostream using namespace std; const int N 100010; int p[N];//存储父结点 int n, m; int find(int x) {//返回x所在集合的编号路径压缩 if (p[x] ! x) p[x] find(p[x]); return p[x]; } int main() { scanf(%d%d, n, m); for (int i 1;i n;i) p[i] i; while (m--) { char op[2];//因为在使用scanf进行读取时若读取单个字符会读取到空格、回车等其他字符使用scanf读取字符串时可忽略空格、回车等其他字符 int a, b; scanf(%s%d%d, op, a, b); if (op[0] M) p[find(a)] find(b);//合并 //find(a)返回a的祖宗结点find(b)返回b的祖宗结点让a的祖宗结点的父结点等于b的祖宗结点 else { if (find(a) find(b)) puts(Yes); else puts(No); } } return 0; } 例题——连通块中点的数量 给定一个包含n个点编号为1~n的无向图初始时图中没有边。 现在要进行m个操作操作共有三种 “C a b”在点a和点b之间连一条边a和b可能相等 “Q1 a b”询问点a和点b是否在同一个连通块中a和b可能相等 “Q2 a”询问点a所在连通块中点的数量 输入格式 第一行输入整数n和m。 接下来m行每行包含一个操作指令指令为“C a b”“Q1 a b”或“Q2 a”中的一种。 输出格式 对于每个询问指令”Q1 a b”如果a和b在同一个连通块中则输出“Yes”否则输出“No”。 对于每个询问指令“Q2 a”输出一个整数表示点a所在连通块中点的数量 每个结果占一行。 数据范围 1≤n,m≤10^5 输入样例 5 5 C 1 2 Q1 1 2 Q2 1 C 2 5 Q2 5 输出样例 Yes 2 3 代码 #includeiostream using namespace std; const int N 100010; int p[N], size1[N];//存储父结点 int n, m; int find(int x) {//返回x所在集合的编号路径压缩 if (p[x] ! x) p[x] find(p[x]); return p[x]; } int main() { scanf(%d%d, n, m); for (int i 1;i n;i) { p[i] i; size1[i] 1; } while (m--) { char op[5]; int a, b; scanf(%s, op); if (op[0] C) { scanf(%d%d, a, b); if (find(a) find(b)) continue; //特判如果两个数已经在一个集合就不用再次合并不然会使得元素中的元素个数翻倍 size1[find(b)] size1[find(a)];//b中元素数量为其本身加上a中元素数量 p[find(a)] find(b);//合并,将a合并到b中 } else if (op[1] 1) { scanf(%d%d, a, b); if (find(a) find(b)) puts(Yes); else puts(No); } else { scanf(%d, a); printf(%d\n, size1[find(a)]); } } return 0; }
http://www.dnsts.com.cn/news/192777.html

相关文章:

  • 佛山智能网站建设地址设计多平台网页制作
  • 网站建设具体建设流程微信扫码点餐小程序怎么做
  • 免费在线图片制作关键词优化报价怎么样
  • 成都本地做网站的做侵权网站用哪里的服务器稳
  • 唐山市建设交易中心官方网站网站上做百度广告赚钱么
  • 新网站怎么做才会被收录设计网站大全湖南岚鸿网站大全
  • 网站建设需要的专业知识酒店网站建设方案结束语
  • asp网站500错误网站设计基本功能
  • 网站建设策划书格式新品发布会领导致辞
  • 上海网站制作衫百度指数官方下载
  • 谷歌广告怎么投放天津做网站优化公司
  • 网站中的轮播怎么做展馆展示设计公司排名
  • 线上销售培训班课程资讯网站优化排名
  • 广州婚恋网站排名建设监理收录网站
  • 旅游网站建设方法的探讨网站开发游戏程序开发
  • 电商网站运营步骤兰州营销型网站
  • 做网站有什么市场风险Wordpress增加QQ分享
  • 升降平台找企汇优做网站推广国外免费源码网站
  • 多用户建站系统源码得到app创始人
  • 楚雄自助建站系统品牌建设 政策
  • 找网络公司做网站需要注意淮南58同城网
  • 跨国购物网站建设费用局域网网站建设
  • 周口市网站建设开发一个oa系统多少钱
  • 做网站哪些公司晋城网站制作公司怎么选
  • 布吉网站建设方案水利局网站建设整改报告
  • 动易网站模板制作方法网站的制作过程
  • 网站做可以退款吗万户网络待遇怎么样
  • 淄博网站搭建公司做的网站首页图片显示不出来
  • 辽宁旅游网站开发平台网站建设开票开什么内容
  • 海米云网站建设望牛墩镇仿做网站