发现这题的并查集做法真是惊呆了

不过似乎匹配跑得更快?

对于一个联通块,假如不含环(就是一棵树),那么必定可以满足其中任意的p-1个点。

对于一个联通块,假如含环,那么必定全部的p个点都能满足。

那么合并并查集的时候可以利用一个vis来维护这个性质

把权值看成点,把武器看成边

如果每次加入的边是合并两个联通块

就把权值小的联通块并到权值大的联通块,然后给权值小的vis=true

如果不是

就把改联通块的顶点的vis=true

这样就可以保证,如果一个大小为N联通块

=N-1条边构成,最大点的vis=false,其他为true

≥N条边构成,所有点的vis=true

然后最后只要一次扫描vis就可以得出答案了 ————hzwer

代码:

 var i,n,m,x,y,tmp:longint;
fa:array[..] of longint;
vis:array[..] of boolean;
function find(x:longint):longint;
begin
if fa[x]<>x then fa[x]:=find(fa[x]);
exit(fa[x]);
end;
procedure main;
begin
readln(n);
fillchar(vis,sizeof(vis),false);
for i:= to do fa[i]:=i;
for i:= to n do
begin
readln(x,y);
x:=find(x);y:=find(y);
if x=y then vis[x]:=true
else
begin
if x>y then begin tmp:=x;x:=y;y:=tmp;end;
fa[x]:=y;
vis[x]:=true;
end;
end;
for i:= to do if (not(vis[i])) and (find(i)=i) then break;
writeln(i-);
end;
begin
main;
end.

SCOI2010游戏的更多相关文章

  1. BZOJ 1854: [Scoi2010]游戏 无向图判环

    题目链接: 题目 1854: [Scoi2010]游戏 Time Limit: 5 Sec Memory Limit: 162 MB 问题描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装 ...

  2. BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )

    匈牙利算法..从1~10000依次找增广路, 找不到就停止, 输出答案. --------------------------------------------------------------- ...

  3. 1854: [Scoi2010]游戏

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2538  Solved: 905[Submit][Status] ...

  4. 【BZOJ】1854: [Scoi2010]游戏【二分图】

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 6759  Solved: 2812[Submit][Status] ...

  5. BZOJ 1854: [Scoi2010]游戏 并查集

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2672  Solved: 958[Submit][Status][ ...

  6. 【BZOJ1854】[Scoi2010]游戏 二分图最大匹配

    [BZOJ1854][Scoi2010]游戏 Description lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当 ...

  7. bzoj1854 [Scoi2010]游戏 ([SCOI2010]连续攻击游戏)

    bzoj1854 [Scoi2010]游戏 ([SCOI2010]连续攻击游戏) 据说正解是并查集???我不会 这不是一道匈♂牙利好题吗??? 一个装备的两个属性都向它连边,然后跑一遍匈♂牙利 注意: ...

  8. 1854: [Scoi2010]游戏[并查集]

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 4938  Solved: 1948[Submit][Status] ...

  9. [BZOJ1854][SCOI2010]游戏 二分图最大匹

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 5316  Solved: 2128[Submit][Status] ...

  10. AC日记——[SCOI2010]游戏 bzoj 1854

    1854: [Scoi2010]游戏 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 4938  Solved: 1948[Submit][Status] ...

随机推荐

  1. 安装 php 转

    一 安装 php 命令: sudo apt-get install libapache2-mod-php5 php5 出现了如下错误: 按照方案一 解决了此问题. 一下 from   http://w ...

  2. WPF ListBox的DataTemplate例子

    <ListBox Name="lbLogInfo"> <ListBox.ItemTemplate> <DataTemplate> <Gri ...

  3. 关于Shell中命令替换$(...)与后置引用`...`的不同

    命令替换 在bash中,$( )与` `(反引号)都是用来作命令替换的.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行. $( )与`` ...

  4. fedora 禁止nouveau加载

    To remove / disable nouveau drivers from kernel initramfs ## Backup old initramfs nouveau image ## m ...

  5. proguardgui.bat来混淆已有的jar包

    1.U:\android-sdk\tools\proguard\bin\找到 proguardgui.bat,双击就可以弹出一个混淆的界面 2.加入不要混淆的,比如我们用的系统的,还有别人的jar 3 ...

  6. OFBIZ bug_ControlServlet.java:239:ERROR

    错误日志: [java] 2014-09-23 00:11:34,877 (http-bio-0.0.0.0-8080-exec-4) [ ControlServlet.java:141:INFO ] ...

  7. sybase convert 函数

    1.从string到int的转换 convert(int,@string) select convert( int , '15') 2. 从int 到 decimal 的转换 convert(deci ...

  8. c#类库中使用Session

    网站开发中,为了保存用户的信息,有时候需要使用session.如果我们在aspx页面中使用Session,只需要Session["key"]=value就可以,获取时使用int u ...

  9. LocalStorage 本地存储

    首先自然是检测浏览器是否支持本地存储.在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在 ...

  10. Nagios+msn+fetion自定义时间发送报警消息

    转自http://blog.csdn.net/deccmtd/article/details/6063467 Nagios+fetion发送手机报警使用了几个月.每次报警短信来都要看下手机.感觉麻烦. ...