(怎么都是抓罪犯 怪不得写法差不多)

团伙 关押罪犯

并查集。以“敌人的敌人是朋友”的思路来处理。所以增加一个e/E数组来存储敌人。

关押罪犯还用到了贪心的思路。将冲突值从大到小排序,如果当前敌对两点在同一集合,直接输出。

团伙:

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int n,m;
#define MAXN 1001
int f[MAXN];
int ex[MAXN]={};
void init()
{
scanf("%d%d",&n,&m);
getchar();
for (int i=1;i<=n;i++)
{
f[i]=i;
}
return;
}
int found(int x)
{
if (f[x]==x) return x;
return f[x]=found(f[x]);
}
inline void unionn(int x,int y)
{
f[found(f[x])]=found(y);
return;
}
int uni()
{
int ans=0;
char z;
for (int i=1,x,y;i<=m;i++)
{
cin>>z;
scanf("%d%d",&x,&y);
if (z=='F')
{
unionn(x,y);
continue;
}
if ((!ex[x])&&(!ex[y]))
{
ex[x]=y;
ex[y]=x;
continue;
}
if (!ex[x])
{
ex[x]=f[y];
unionn(x,ex[y]);
continue;
}
if (!ex[y])
{
ex[y]=f[x];
unionn(y,ex[x]);
continue;
}
f[found(f[y])]=found(ex[x]);
f[found(f[x])]=found(ex[y]);
}
for (int i=1;i<=n;i++)
{
if (f[i]==i)
{
ans++;
}
}
return ans;
}
int main()
{
init();
cout<<uni();
return 0;
}

关押罪犯:

#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cmath>
#define MAXN 20005
#define MAXM 100005
using namespace std;
struct naiv
{
int a,b,c;
}e[MAXM];
int n,m;
int f[MAXN];
int E[MAXN]={};
bool cmp(naiv x,naiv y)
{
return x.c>y.c;
}
int find(int x)
{
if (f[x]==x) return x;
return f[x]=find(f[x]);
}
int main()
{
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++)
{
f[i]=i;
}
for (int i=1;i<=m;i++)
{
scanf("%d%d%d",&e[i].a,&e[i].b,&e[i].c);
}
sort(e+1,e+m+1,cmp);
for (int i=1;i<=m;i++)
{
if (find(e[i].a)==find(e[i].b))
{
printf("%d",e[i].c);
return 0;
}
if (!E[e[i].a])
{
E[e[i].a]=e[i].b;
}
else
{
f[find(E[e[i].a])]=find(e[i].b);
}
if (!E[e[i].b])
{
E[e[i].b]=e[i].a;
}
else
{
f[find(E[e[i].b])]=find(e[i].a);
}
}
printf("0");
return 0;
}

Luogu P1892 P1525 团伙 关押罪犯的更多相关文章

  1. 洛谷 P1525 【关押罪犯】种类并查集

    题解 P1525 [关押罪犯]:种类并查集 前言: 在数据结构并查集中,种类并查集属于扩展域并查集一类. 比较典型的题目就是:食物链(比本题难一些,有三个种类存在) 首先讲一下本题的贪心,这个是必须要 ...

  2. Luogu P1892 [BOI2003]团伙

    P1892 [BOI2003]团伙 题目描述 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人 ...

  3. 【并查集】【P1525】关押罪犯

    传送门 Description Input Output Sample Input Sample Output Hint Solution 非常显然的并查集题目,在本题中,对于每个罪犯i,维护两个信息 ...

  4. 【洛谷 P1525】 关押罪犯 (二分图+二分答案)

    题目链接 并查集+贪心当然是可以做的. 但我用二分图+二分答案. 二分一个\(mid\),删去所有边权小于等于\(mid\)的边,看有没有奇环存在,如果存在,则\(mid\)不行. #include ...

  5. 洛谷P1525 关押罪犯(并查集、二分图判定)

    本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...

  6. 洛谷 P1525 关押罪犯

    题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...

  7. Luogu 1525 【NOIP2010】关押罪犯 (贪心,并查集)

    Luogu 1525 [NOIP2010]关押罪犯 (贪心,并查集) Description S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨 ...

  8. 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]

    P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...

  9. Luogu P1892 团伙

    Luogu P1892 团伙 这是道很简单的并查集-- 不,它并不简单. 这道题考了一个叫做反集的东西. 也就是说: 如果$a$和$b$是敌人,合并$n+b$和$a$,$n+a$和$b$: 如果$c$ ...

随机推荐

  1. MFMailComposeViewController发送邮件的实例

    本文转载至 http://blog.csdn.net/liufeng520/article/details/7585140   iPhone API已经提供了系统写邮件界面的接口,使用MFMailCo ...

  2. centos 安装python PIL模块

    转载:https://www.cnblogs.com/ccdc/p/4069112.html 1.安装 使用yum安装缺少类库: #尤其重要,否则会报错 yum install python-deve ...

  3. error_match问题

    当nginx的sendfile处于on的情况下,在docker的环境下修改js文件会出现error_match的问题,应该要在nginx的配置中把sendfile设为off

  4. 创建dblink

    创建dblinkcreate database link user1_Link_app--dblink名称----connect to ehl_app ----远程数据库名称----identifie ...

  5. bypass safedog upload

    这里附上两个payload: Content-Disposition: form-data; name=”up_picture”; filename=”[回车]1.php” Content-Dispo ...

  6. ArcEngine临时数据存储 创建内存工作空间

    参考网址,这里 工作中有时候需要使用临时数据,以前都是创建一个默认的shapefile或者gdb,今天发现esri官方帮助文档给出了一个方法,可以创建内存工作空间,代码如下: public stati ...

  7. Gym 101981K - Kangaroo Puzzle - [玄学][2018-2019 ACM-ICPC Asia Nanjing Regional Contest Problem K]

    题目链接:http://codeforces.com/gym/101981/problem/K Your friend has made a computer video game called “K ...

  8. [No000017F]如何监控注册表的修改

    今天我们将向您展示如何使用我们最喜欢的工具之一Proc Mon,在您更改PC上的组策略设置时查看编辑的注册表项. 使用Proc Mon查看组策略对象修改的注册表设置 您要做的第一件事就是从Sys In ...

  9. orange---openresty.

    需要有一个类似于API网关的中间件来做API的管理工作,也就是API的实现方面更多的考虑业务逻辑,安全.性能.监控可以交由网关来做(如下图所示,下图根据Kong官方文档修改) 通过MySQL存储来简单 ...

  10. [yum] yum加速

    通常,以我对于个人生活和工作品质的要求,并没有这个需求. 因为我的宽带费很贵,独享.就算是centos主站,也很快.但是当你去了一些办公环境恶劣的地方上班的时候, 也难免动用一些小技巧.如下: 装这个 ...