2597 团伙【解题报告】
来源:互联网 发布:如何将域名指向网站 编辑:程序博客网 时间:2024/06/06 01:53
#include<cstdio>#include<iostream>#include<cstring>#include<vector>using namespace std;int g[1001];int e[1001];int n,m;int find(int i){return g[i]==i?i:g[i]=find(g[i]);}int main(){scanf("%d%d\n",&n,&m);for(int i = 1;i <= n;++i)g[i]=i;char c;int p,q;for(int i = 1; i < m;++i){scanf("%c%d%d\n",&c,&p,&q);if(c=='F'){int x = find(p);int y = find(q);g[x]=y;}else{if(e[p]){g[find(e[p])]=find(q);}else{e[p]=q;}if(e[q]){g[find(e[q])]=find(p);}else{e[q]=p;}}}scanf("%c%d%d",&c,&p,&q);if(c=='F'){int x = find(p);int y = find(q);g[x]=y;}else{if(e[p]){g[find(e[p])]=find(q);}else{e[p]=q;}if(e[q]){g[find(e[q])]=find(p);}else{e[q]=p;}}int ans(0);for(int i = 1;i <= n;++i){if(find(i)==i) ++ans;}cout << ans;return 0;}
以上是郭神的代码。。不忍吐槽。。
以下是我的↓
#include<cstdio>#include<iostream>#include<cstring>using namespace std;int n,m;int fa[1001],f[1001];int find(int t){if(fa[t]==t)return t;return fa[t]=find(fa[t]);}int main(){scanf("%d %d",&n,&m);for(int i=1;i<=n;i++)fa[i]=i;char c;int x,y;for(int i=1;i<=m;i++){scanf("\n %c%d%d",&c,&x,&y);if(c == 'F'){int fx = find(x);int fy = find(y);if(fx!=fy)fa[fy]=fx;}else{if(f[x])fa[find(f[x])]=find(y);elsef[x]=y;if(f[y])fa[find(f[y])]=find(x);elsef[y]=x;}}int ans=0;for(int i=1;i<=n;i++){if(find(i) == i)ans++;}printf("%d",ans);return 0;}
1 3
- 2597 团伙【解题报告】
- codevs2597-团伙-解题报告
- 【codevs2597/tyvj1602】团伙 解题报告
- codevs 2597 团伙 并查集 解题报告
- CODE[VS] 2597 团伙
- 【codevs】2597 团伙
- wikioi 2597 团伙
- codevs 2597 团伙 题解
- codevs 2597 团伙
- 【CodeVS】2597 团伙
- CodeVS 2597 团伙
- Codevs 2597 团伙
- 【codevs 2597】团伙
- 团伙
- 团伙
- 团伙
- 解题报告
- 解题报告
- 使用Visual Studio 2015 Community 开发windows服务
- Linux下利用backtrace追踪函数调用堆栈以及定位段错误
- 安装php 找不到lib.so包原因分析
- C/C++ 内存分配情况
- 不是人人都懂的学习要点
- 2597 团伙【解题报告】
- ios推送消息的基本原理--了解
- JAVA基础(17) Java虚拟机工作原理详解
- iOS开发7:自动旋转与调整大小
- 三种交换技术及其比较
- thinkphp url重写规则及wamp配置
- Lua程序设计 第17章 弱引用笔记
- 批处理文件实现延时
- fsocketopen,curl,file_get_contents