解法:

(1)搜索(30分)

(2)二分(此题属于最大值最小问题)

(3)贪心+并查集

下面着重说一下“贪心+并查集”

因为有A、B两座监狱,每个犯人不是在A,就是在B监狱。

至于每个犯人在那个监狱,我们可以人为的指定,但在指定时要考虑和他有怨气的所有人,太复杂了!

反过来,我们可以从全局考虑:用x0表示x的反集合,y0表示y的反集合,也就是说如果不跟x同集合那就一定跟x0同集合,同理,如果不跟y同集合就一定跟y0同集合...

这样先排序,从大到小往不同的集合中添加边的两个端点,每次判断是否有冲突,若有冲突(说明该边的两个端点在前面比他大的边的分配中已经分配到同一个集合,那么该边就是符合要求的最大边),那么就输出,否则合并..

type
node=record
x,y,data:longint;
end; var
n,m:longint;
bo:boolean;
a:array[..]of node;
f:array[..] of longint;
procedure init;
var i:longint;
begin
bo:=false;
readln(n,m);
for i:= to m do readln(a[i].x,a[i].y,a[i].data);
end;
procedure qsort(l,r:longint);
var mid,i,j:longint;t:node;
begin
mid:=a[(L+R)div ].data;
i:=l;j:=r;
while i<j do
begin
while a[i].data<mid do inc(i);
while a[j].data>mid do dec(j);
if i<=j then begin t:=a[i];a[i]:=a[j];a[j]:=t; inc(i);dec(j); end;
end;
if i<r then qsort(i,r);
if j>l then qsort(l,j);
end;
function find(x:longint):longint;
begin
if f[x]=x then exit(x);
if f[f[x]]=f[x] then exit(f[x]);
find:=find(f[x]); f[x]:=find;
end;
procedure main;
var i,x,y,x0,y0,nn:longint;
begin
nn:=n+n;
for i:= to nn do f[i]:=i;
qsort(,m);
for i:=m downto do
begin
x:=a[i].x;y:=a[i].y;x0:=n+x;y0:=n+y;
x:=find(x);y:=find(y);x0:=find(x0);y0:=find(y0);
if (x=y){or(x0=y0)} then begin writeln(a[i].data);bo:=true;break;end;
if x<>y0 then f[x]:=y0;
if y<>x0 then f[y]:=x0;
end;
end;
begin
assign(input,'prison.in');reset(input);
assign(output,'prison.out');rewrite(output);
init;
main;
if not bo then write();
close(input);close(output);
end.

关押罪犯(noip2010)的更多相关文章

  1. 洛谷1525 关押罪犯NOIP2010 并查集

    问题描述 S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示某两 ...

  2. 【codevs1069】关押罪犯[noip2010](并查集)

    题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极 不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨 ...

  3. 洛谷-关押罪犯-NOIP2010提高组复赛

    题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”(一个正整数值)来表示 ...

  4. 洛谷 P1525 关押罪犯 & [NOIP2010提高组](贪心,种类并查集)

    传送门 解题思路 很显然,为了让最大值最小,肯定就是从大到小枚举,让他们分在两个监狱中,第一个不符合的就是答案. 怎样判断是否在一个监狱中呢? 很显然,就是用种类并查集. 种类并查集的讲解——团伙(很 ...

  5. 洛谷 P1525 关押罪犯 NOIp2010提高组 (贪心+并查集)

    题目链接:https://www.luogu.org/problemnew/show/P1525 题目分析 通过分析,我们可以知道,这道题的抽象意义就是把一个带边权的无向图,分成两个点集,使得两个集合 ...

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

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

  7. 题解 【NOIP2010】关押罪犯

    [NOIP2010]关押罪犯 Description S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突 ...

  8. # 「NOIP2010」关押罪犯(二分图染色+二分答案)

    「NOIP2010」关押罪犯(二分图染色+二分答案) 洛谷 P1525 描述:n个罪犯(1-N),两个罪犯之间的仇恨值为c,m对仇恨值,求怎么分配使得两件监狱的最大仇恨值最小. 思路:使最大xxx最小 ...

  9. NOIP2010提高组真题部分整理(没有关押罪犯)

    目录 \(NOIP2010\)提高组真题部分整理 \(T1\)机器翻译: 题目背景: 题目描述: 输入输出格式: 输入输出样例: 说明: 题解: 代码: \(T2\)乌龟棋 题目背景: 题目描述: 输 ...

  10. NOIP2010提高组 关押罪犯 -SilverN

    (洛谷P1525) 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”( ...

随机推荐

  1. 如何在腾讯云快速构建一个Wordpress个人站点

    版权声明:本文由贺嘉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/175 来源:腾云阁 https://www.qclou ...

  2. OI中的代码调试

    作为一位OIer,代码调试的能力必不可少. 今天梳理一下自己进行代码调试的方法,下面只是一些个人的总结. 代码的评价有三部分: 正确性 强健性 高效性 检查也应该从这三部分出发. [正确性] 打完代码 ...

  3. hdu1710(Binary Tree Traversals)(二叉树遍历)

    Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  4. 史上最用心的 iOS App 上架流程

    题记 麻痹起来嗨!看网上那么多的教程,依然在我心爱的爱屁屁在上架的时候遇到各种 J8 问题,最大的问题就是:Xcode 证书什么的,Provisioning Profile 什么的,Debug 什么的 ...

  5. hdu5878 I Count Two Three(二分+ 打表)

    题目链接:hdu5878 I Count Two Three 题意:给出一个整数n, 找出一个大于等于n的最小整数m, 使得m可以表示为2^a * 3^b * 5^c * 7^d​​. 题解:打表预处 ...

  6. hdu5882 Balanced Game

    题目链接:hdu5882 Balanced Game 题解:每种手势的攻防数一样,不难想到n为奇数时游戏平衡. #include<cstdio> #include<cstring&g ...

  7. maven搭建java ee项目

    1.点击File->New->Other,选择maven project   2.选择maven project,点击Next,,而后再点击next,进入如下界面 如图选择最后一个,点击n ...

  8. Objective-C( 语法一)

    点语法 点语法的本质是方法调用 成员变量的作用域 @public : 在任何地方都能直接访问对象的成员变量 @private : 只能在当前类的对象方法中直接访问(@implementation中默认 ...

  9. 如何对ConnectionString进行加密解码?

    这个就不说了就是一个类 public static class EncryptionConfig { /* 加密配置节点 * Response.Write(EncryptionConfig.Encry ...

  10. 如何解决链入js,innerHTML中文乱码问题呢?

    描述:发生在做suhuotong网站的时候,添加在线客服代码的时候三个地方1.将js以UTF-8无BOM编码:VS修改或者使用NotePad++修改2.<meta http-equiv=&quo ...