博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
犯罪团伙
阅读量:5246 次
发布时间:2019-06-14

本文共 1496 字,大约阅读时间需要 4 分钟。

犯罪团伙(gang.cpp)

我在网上搜这道题的时候搜出来一堆犯罪团伙在世界上造成的恶劣影响,这道题名起的真的绝了......

我化学砸了!  !  !我化学砸了!!!我化学砸了!!!

现在整个人都无比颓废......

题目描述
 警察抓到了n个罪犯,警察根据经验知道他们属于不同的犯罪团伙,却不能判断有多少个团伙,但通过警察的审讯,知道其中的一些罪犯之间相互认识,已知同一犯罪团伙的成员之间直接或间接认识。有可能一个犯罪团伙只有一个人。请你根据已知罪犯之间的关系,确定犯罪团伙的数量。已知罪犯的编号从1至n。
输入
 第1行:n(<=500,罪犯数量),m(<50000,关系数量)以下m行:每行两个数:i 和j,中间一个空格隔开,表示罪犯i和罪犯j相互认识。

输出
 第1行:一个整数,犯罪团伙的数量。
样例输入
11 8
1 2
4 3
5 4
1 3
5 6
7 10
5 10
8 9
样例输出
3

然后我当时觉得这个东西应该用并查集做,但是我忘了并查集该怎么写了,于是我就开始一顿乱蒙,写出来了这个东西,我也不知道它对不对呀

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 int f[10001],g[10001]; 8 int main() 9 {10 //freopen("gang.in","r",stdin);11 //freopen("gang.out","w",stdout);12 int m,n,i,j;13 scanf("%d",&n);14 scanf("%d",&m);15 for(int x = 1;x <= m;x++)16 {17 scanf("%d %d",&i,&j);//f[i]表示i的爸爸,g[i]表示i的祖先 18 if(f[j] != 0 && f[i] == 0) f[i] = j,g[i] = g[j];19 if(f[i] != 0 && f[j] == 0) f[j] = i,g[j] = g[i];20 if(f[i] == 0 && f[j] == 0) f[i] = j,g[i] = j,g[j] = j; 21 if(f[i] != 0 && f[j] != 0) f[g[i]] = j;//当两个点都有爸爸时,把其中一个的祖先变为另一个的儿子,使两棵树连在一起 22 }23 int ans = 0;24 sort(g + 1,g + n + 1);25 for(int i = 1;i <= n;i++)26 {27 if(g[i] != g[i + 1]) ans++;28 }29 printf("%d",ans);30 return 0;31 }32

 

反正对不对等我明天去学校测一下就知道了

 

转载于:https://www.cnblogs.com/yupeiqi/p/8620356.html

你可能感兴趣的文章
Hive教程(1)
查看>>
第16周总结
查看>>
C#编程时应注意的性能处理
查看>>
比较安全的获取站点更目录
查看>>
苹果开发者账号那些事儿(二)
查看>>
UVA11374 Airport Express
查看>>
P1373 小a和uim之大逃离 四维dp,维护差值
查看>>
NOIP2015 运输计划 树上差分+树剖
查看>>
P3950 部落冲突 树链剖分
查看>>
读书汇总贴
查看>>
微信小程序 movable-view组件应用:可拖动悬浮框_返回首页
查看>>
MPT树详解
查看>>
空间分析开源库GEOS
查看>>
RQNOJ八月赛
查看>>
前端各种mate积累
查看>>
jQuery 1.7 发布了
查看>>
Python(软件目录结构规范)
查看>>
Windows多线程入门のCreateThread与_beginthreadex本质区别(转)
查看>>
Nginx配置文件(nginx.conf)配置详解1
查看>>
linux php编译安装
查看>>