DTOJ 4792. 清扫银河

题解

“环银河系航行计划所面临的最大危险是失败主义。” 章北蚤非常严肃地对你说,“失败主义的思想根源,主要是盲目的技术崇拜,轻视或忽视人的精神和主观能动性在发展工质发动机中的作用。” 为了避免失败主义在军队中的蔓延,章北蚤建议先进行清扫银河计划,提振士气,增强信心。

银河系共有 n n n 颗行星,编号为 1 , … , n 1,…,n 1,,n。环银河系航行可能会经过的无向航道共有 m m m 条,第 i i i 条航道连接 x i x_i xi 号行星和 y i y_i yi 号行星 ( x i ≠ y i ) (x_i≠y_i) (xi=yi),用 ( x i , y i ) (x_i,y_i) (xi,yi) 表示。保证同一条航道不会被重复列举多次。

由于部分航道存在容易被撞上的小行星带,初始时一部分航道是可通行的,一部分的航道是不可通行的。章北蚤说的清扫银河计划,就是希望你先向宇宙发射跳蚤激光,远距离清除所有阻碍计划的小行星带,将所有航道变得可通行。

如果跳蚤激光照射到了一个航道上,则该航道的通行状态会被翻转:如果一个航道原本不可通行,那么被照射后航道上的小行星带会被清除,航道也会变得可通行;反之若该航道原本可通行,那么跳蚤激光会因为未击中目标而在附近的宇宙空间中胡乱狂轰乱炸,炸出小行星带,导致该航道变得不可通行。

跳蚤激光只能批量发射,不能单独发射。发射方式只有如下两种:

  • 选择一个由行星组成的简单环,发射跳蚤激光后,任意一条环路上的航道都会受到跳蚤激光照射。也就是说,选出一个由不同的行星编号组成的序列 p 1 , ⋯ , p k ( 2 ≤ k ≤ n ) p_1, ⋯,p_k(2 \le k\le n) p1,,pk2kn,使得对于所有 1 ≤ i ≤ k 1\le i \le k 1ik 都存在航道 ( p i , p i m o d    k + 1 ) (p_i,p_{i \mod k} +1) (pi,pimodk+1)。在发射跳蚤激光后,任意一条形如 ( p i , p i m o d    k + 1 ) (p_i,p_{i \mod k}+1) (pi,pimodk+1) 的航道的通行状态都会被翻转;特别的,如果简单环长度为 2 2 2,则这一条边会被翻转两次。
  • 把每个行星标记为黑色或者白色,发射跳蚤激光后,任意一条两端行星颜色不同的航道都会受到跳蚤激光照射。也就是说,对于所有的航道 ( x i , y i ) (x_i,y_i) (xi,yi),如果 x i x_i xi y i y_i yi 号行星的颜色不同,那么 ( x i , y i ) (x_i,y_i) (xi,yi) 航道的通行状态会被翻转。

发射跳蚤激光的费用非常昂贵,所以章北蚤要求你判断是否能使用不超过 m + 1 m+1 m+1 次发射就能完成清扫银河计划。

子任务1 (20分) n ≤ 10 , m ≤ 15 n \le 10,m \le 15 n10,m15

子任务2 (20分) n ≤ 30 , m ≤ 100 n \le 30,m \le 100 n30,m100

子任务3 (30分) n ≤ 100 , m ≤ 500 n \le 100,m \le 500 n100,m500

子任务4 (30分):无特殊限制。

对于所有测试数据,满足 1 ≤ T ≤ 10 , 1 ≤ n ≤ 300 , 0 ≤ m ≤ n ( n − 1 ) 2 1 \le T \le 10,1 \le n \le 300,0 \le m \le \frac{n(n−1)}{2} 1T10,1n300,0m2n(n1)

保证将航道抽象成边,行星抽象成点后形成的无向图中不存在自环,不存在重边。

题解

把每条边状态看作0/1,对于第一种操作容易联想到欧拉回路,只保留1的边,如果每个点度数都是2直接用欧拉回路翻转即可。

对于2,考虑把每个点的权值看作分到的组别0/1,做一次操作后,一条边即异或上它连段点的权值,要求每个点的所有连边的异或和为0。把每个点的权值看作未知数,注意到这是个方程组判断解的问题,高斯消元即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值