Warning: session_start(): open(/tmp/sess_ee48cbaeb632e42302d440adedea1e83, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239
Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
题意:
有n(1e5)对数,每对数可以选出一个,不能有两个相同的数被选。求最大的可以选出的数的个数。
分类:
图论。
题解:
把一对数看成两个点之间的一条边。
如果一个联通块组成了一棵树,那么这个联通块只能被选size-1个数。
如果一个联通块不是一颗树,那么在加入一条边形成环的时候,就可以选出size个数了。
用并查集求一下一个联通块内有多少点和多少边就可以。
comment:
转化思路比较妙