Luogu P1892 P1525 团伙 关押罪犯
(怎么都是抓罪犯 怪不得写法差不多)
并查集。以“敌人的敌人是朋友”的思路来处理。所以增加一个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 团伙 关押罪犯的更多相关文章
- 洛谷 P1525 【关押罪犯】种类并查集
题解 P1525 [关押罪犯]:种类并查集 前言: 在数据结构并查集中,种类并查集属于扩展域并查集一类. 比较典型的题目就是:食物链(比本题难一些,有三个种类存在) 首先讲一下本题的贪心,这个是必须要 ...
- Luogu P1892 [BOI2003]团伙
P1892 [BOI2003]团伙 题目描述 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人 ...
- 【并查集】【P1525】关押罪犯
传送门 Description Input Output Sample Input Sample Output Hint Solution 非常显然的并查集题目,在本题中,对于每个罪犯i,维护两个信息 ...
- 【洛谷 P1525】 关押罪犯 (二分图+二分答案)
题目链接 并查集+贪心当然是可以做的. 但我用二分图+二分答案. 二分一个\(mid\),删去所有边权小于等于\(mid\)的边,看有没有奇环存在,如果存在,则\(mid\)不行. #include ...
- 洛谷P1525 关押罪犯(并查集、二分图判定)
本人蒟蒻,只能靠题解AC,看到大佬们的解题思路,%%%%%% https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编 ...
- 洛谷 P1525 关押罪犯
题目链接 https://www.luogu.org/problemnew/show/P1525 题目描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1−N.他们之间的关系自然也极不和谐.很多罪 ...
- Luogu 1525 【NOIP2010】关押罪犯 (贪心,并查集)
Luogu 1525 [NOIP2010]关押罪犯 (贪心,并查集) Description S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨 ...
- 洛谷 P1525 关押罪犯==codevs 1069 关押罪犯[NOIP 2010]
P1525 关押罪犯 513通过 1.4K提交 题目提供者该用户不存在 标签图论并查集NOIp提高组2010 难度普及+/提高 提交该题 讨论 题解 记录 最新讨论 咳咳.竟MLE了. 囧.运行时错误 ...
- Luogu P1892 团伙
Luogu P1892 团伙 这是道很简单的并查集-- 不,它并不简单. 这道题考了一个叫做反集的东西. 也就是说: 如果$a$和$b$是敌人,合并$n+b$和$a$,$n+a$和$b$: 如果$c$ ...
随机推荐
- cf 1132 F
区间dp.. 每次删一串相邻的一样的,问多少次删光. 感觉想的几乎是一样的怎么比赛时就过不了呢...一定是因为我挂机睡觉了 考虑l和r相等,l和l+1相等,r和r-1相等这三种情况就行了..然后就是裸 ...
- 给table加边框的样式
<style> .tb { width: 1600px; text-align: center; border-collapse: collapse; } .tb tr td { bord ...
- C++打开剪切板,获取剪切板数据
if (::OpenClipboard(NULL) && ::IsClipboardFormatAvailable(CF_HDROP)) { HDROP hDrop = (HDROP) ...
- PHP(数据类型、水仙花数(重点)运算符)
<!--三个弹窗 alert():打开页面只是提示一下,告警框 仅仅提示,关了就关了 confirm():选择框 有返回值 prompt():输入框 控制台输出console.log() 字符串 ...
- Oracle课程档案,第四天
“子查询”就是查询中嵌套着另一个查询,也即通过SELECT语句的嵌套使用形成子查询.当我们不知道特定的查询条件时,可以用子查询来为父查询提供查询条件以获得查询结果. 子查询先清除子查询 在清除主查询 ...
- python语法_使用占位符进行格式化输出
“%s” 占位符 name = input("name:") age = input("age:") job = input("job:" ...
- spring管理的类如何调用非spring管理的类
spring管理的类如何调用非spring管理的类. 就是使用一个spring提供的感知概念,在容器启动的时候,注入上下文即可. 下面是一个工具类. import org.springframewor ...
- RNN Train和Test Mismatch
李宏毅深度学习 https://www.bilibili.com/video/av9770302/?p=8 在看RNN的时候,你是不是也会觉得有些奇怪, Train的过程中, 是把训练集中的结果作为下 ...
- mybatis(二)--相关属性及相关细节
mapper接口动态代理 动态代理dao开发规则 1.namespace必需是接口的全路径名 2.接口的方法名 必需与 映射文件的sql id一致 3.接口的输入参数必需与映射文件的parameter ...
- CH#46 磁力块 分块
正解:分块+bfs 解题报告: 先放个传送门,然后瞎扯淡下QAQ 突然感觉不停课大概是正确的选择QAQ 大概实在是没有天赋?明明都知道正解是分块甚至还听了下解法感觉理解了,再看一次依然没想到解法,,, ...