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

做网站的升级人/seo常用的优化工具

做网站的升级人,seo常用的优化工具,购物商城网页模板,一个网站怎么绑定很多个域名http://poj.org/problem?id1611 并查集的基本思想就是:它的每个元素开始都属于各自的一个集合,查找两个元素所属的集合是否属于同一个集合,如果不是则合并~ 实现方法很简单~ 用树来实现~所有属于同一集合的元素属于同一棵树, …

http://poj.org/problem?id=1611

并查集的基本思想就是:它的每个元素开始都属于各自的一个集合,查找两个元素所属的集合是否属于同一个集合,如果不是则合并~   

    实现方法很简单~ 用树来实现~所有属于同一集合的元素属于同一棵树,

这样我们就可以用数根来表示一个集合,要找到某个元素属于哪个集合
,只要找到这个元素所在的树的树根;要合并两个集合,只要合并两棵树。一般比
较方便的方法是用父亲数组Parent[]来表示树,Parent[i]就是节点i的父结点,树
根的父结点就是它本身,关于并查集的优化,可以在find的时候进行路径压缩~只有两层

int find(int x)
{
 if(x!=p[x]) p[x]=find(p[x]);//每次查找的时候,都进行了压缩~
 return p[x];
}

下面附上代码:

#include <iostream>
using namespace std;
int n,m,k,t,f,p[30001],rank[30001],a,b;
int find(int x)
{
 if(x==p[x]) return x;
 else return p[x]=find(p[x]);
}
void un(int x,int y)
{
 a=find(x);
 b=find(y);
 if(a==b) 
  return;
 if(rank[a]>rank[b])
  p[b]=a;
 else
 {
  p[a]=b;
        if(rank[a]==rank[b])
   rank[b]++;
 }
}
int main()
{
 int i,sum;
 while(cin>>m>>n&&(m||n))
 {
  for(i=0;i<m;i++)
  {
   p[i]=i;
   rank[i]=0;
  }
  for(i=0;i<n;i++)
  {
   cin>>k;
   if(k>=1)
    cin>>f;
   for(int j=1;j<k;j++)
   {
    cin>>t;//读入、合并
  un(f,t);
   }
  }
     sum=1;
  for(i=1;i<m;i++)
  {
   if(find(i)==find(0))
    sum++;  
  }
  cout<<sum<<endl;
 }
 return 1;

}

这里的rank[i]标记这个i集合的深度

基本过程是:读入数据,判断~合并,最后找和0在同一个集合中的节点的个数~得解

poj2524跟此题类似

当然这都是并查集的基础题,下一道题是非常经典的~食物链

http://www.jmfq.cn/news/5295781.html

相关文章:

  • 旅游地网站制作/nba最新交易消息
  • jquery 打开新网站/全球最大的磁力搜索引擎
  • 山东高端网站建设wang/icp备案查询官网
  • 南京百度网站建设/百度收录工具
  • 网站做动态和静态哪个贵/百度网站排名优化
  • 做软装搭配的网站/百度网站app下载
  • 京东商城网站风格/上海关键词排名手机优化软件
  • 500强企业网站建设/宁波seo教程行业推广
  • 网站开发常用png/seo专业优化公司
  • 北京大型网站建设公司/石家庄seo代理商
  • 两个彩票网站做赔付/上海seo优化公司
  • 自适应网站做百度推广/中文搜索引擎排名
  • 如何做微信商城网站建设/培训机构咨询
  • 做购物网站的目的/网页制作在线生成
  • 网站建设补贴/深圳seo推广公司
  • 购物网站开发目的/爱站网收录
  • 深圳市企业网站seo营销工具/免费建一个自己的网站
  • 房地产网站制作公司/seo自动优化工具
  • html5做网站链接范例/真实的网站制作
  • 腾讯企业邮箱登录登录入口/重庆百度推广优化
  • wordpress陶哲轩/seo关键词排名优化怎样收费
  • 怎么模仿别人做网站/nba中国官方网站
  • 自己怎样做网站/小红书搜索关键词排名
  • 苏州奶茶加盟网站建设/苏州优化网站公司
  • 教育品牌网站建设/seo推广方式是什么呢
  • 广州建设网站下载/怎么创建网站快捷方式到桌面
  • linux建设视频网站/营销推广案例
  • 要建一个网站该怎么做/旺道营销软件
  • 百度网站名称/网站怎么优化关键词快速提升排名
  • 西安 网站 高端 公司/优化seo软件