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

vps搭建网站教程深圳大型网站建设公司

vps搭建网站教程,深圳大型网站建设公司,360做网站多少钱一年,北京怎样做企业网站审题: 本题需要我们通过解析所有人之间的关系,从而判断出朋友团体的总个数并输出 思路: 方法一:扩展域并查集 由于这里涉及对朋友/敌人等关系集合的频繁操作,所以我们需要使用并查集来操作,但是普通的并查集…

审题:

本题需要我们通过解析所有人之间的关系,从而判断出朋友团体的总个数并输出

思路:

方法一:扩展域并查集

由于这里涉及对朋友/敌人等关系集合的频繁操作,所以我们需要使用并查集来操作,但是普通的并查集只有一种集合域,也就是只能维护一种关系。这里有两种关系存在,常规并查集已经无法满足要求,所以我们需要使用扩展域并查集

补充:扩展域并查集

相比于普通并查集来说,这种并查集可以维护更多的关系,具体的实现逻辑如下

1.将fa数组的集合域分为朋友域和敌人域

朋友域为1~n,敌人域为1+n~n+n

2.对于x元素来说,和x在同一个集合的是朋友,和x+n在同一个集合的是敌人

讲解操作过程:

假设现在人数n为3,1和2是敌人,2和3是敌人。

接下来我们按照扩展域并查集的逻辑进行模拟操作

由于1和2是敌人,所以我们将1和2的敌人域连起来,将2和1的敌人域连起来,同理后面2和3也近似操作

按照题意,敌人的敌人就是朋友,所以1和3应该是朋友。而我们看到经过前面的操作,1和3处于同一个集合,满足题意,方法成立

解题:
 

#include<iostream>
using namespace std;
const int N = 1010;
int n, m;
int fa[N * 2];
int find(int x)
{return fa[x] == x ? x : fa[x] = find(fa[x]);
}
void un(int x, int y)//让朋友域当根节点
{fa[find(x)] = find(y);
}int main()
{cin >> n >> m;//初始化扩展并查集for (int i = 1; i <= 2 * n; i++){fa[i] = i;}//建立关系for (int i = 1; i <= m; i++){char x;int y, z;cin >> x >> y >> z;if (x == 'E')//敌人关系{un(z + n, y);un(y + n, z);}else//朋友关系{un(y, z);}}//查询团伙数int ret = 0;for (int i = 1; i <= n; i++){if (fa[i] == i) ret++;}cout << ret << endl;return 0;
}

注意:

1.题目中只说了两个条件:一个是敌人的敌人是朋友,另一个是朋友的朋友是朋友。

但是没有说朋友的敌人是不是敌人,敌人的朋友是不是敌人,所以我们不需要进行特别的其他操作

2.由于实际上存在的人数是n,敌人域是我们自己构建的,所以我们最后统计团伙的时候不能统计到敌人域,只需要统计前n个即可

3.由于我们统计的是朋友域,所以我们的根节点一定要是朋友域的节点,否则就无法统计到了,在传参给un函数的时候要注意顺序

P1892 [BalticOI 2003] 团伙 - 洛谷

http://www.dtcms.com/a/579467.html

相关文章:

  • 做奢侈品网站有哪些linux wordpress 安装
  • 旧金山网站建设网页图片加载慢解决方法
  • 中山公众号平台商场网站建设怎样免费做外贸网站
  • 网站建设数据库ER图怎么画wordpress模板加密
  • 做的网站没给我备案wordpress rpm
  • 国外对网站开发的研究WordPress禁止下载
  • 网站做区块链然后往里面投钱长沙互联网公司招聘
  • 萍乡网站开发公司上杭网站设计公司
  • 网站的建设分析成都设计公司上市
  • 网站外链隐形框架wordpress 媒体库 七牛
  • 嘉兴网站备案去哪里如何做网站ip跳转
  • 网站前端是做啥的网红营销优势
  • 上海发乐门网站建设公司口碑好的秦皇岛网站建设哪里有
  • 网站建设的目标定位重庆全网推广
  • 清爽网站如何加速wordpress
  • 安全质量报监建设局网站wordpress迁移后台打不开
  • 网站建设几大技巧天津建设局网站首页
  • 网站seo评测做外贸怎么找客户
  • 怎样创建网站数据库专业的高端网站制作公司
  • python——元组、列表、字典的综合利用实践
  • wordpress 导航站厦门网站建设满山红
  • 表白网站制作模板制作一个交易平台网站
  • 板子 --11.6
  • discuz网站备份黔东南网站建设
  • 山西太原建站怎么做湖南沙坪建设集团有限公司网站
  • 襄阳网站建设公司怎样在手机上运行wordpress
  • 专业制作网站公司华强北附近网站建设
  • ctfshow-web入门-361-372-ssti
  • 网站建设与维护 东博wordpress sns插件
  • Linux LVM DR 模式部署实践